[c++] MINGW와 멀티스레딩

MINGW는 Windows에서 GCC를 사용하여 C, C++, 그리고 다른 언어를 컴파일하기 위한 도구의 컬렉션이다. MINGW는 멀티스레드 프로그래밍을 위한 여러 가지 옵션을 제공한다. 이 포스트에서는 MINGW 환경에서 C++로 멀티스레드 프로그램을 작성하는 방법에 대해 살펴보겠다.

MINGW 설치

MINGW는 공식 웹사이트에서 다운로드 할 수 있다. 다운로드 및 설치가 완료되면 컴퓨터에서 실행할 수 있는 GCC와 관련 도구들을 사용할 수 있다.

MINGW에서의 멀티스레딩

MINGW에서 멀티스레딩을 구현하려면 pthreads 라이브러리를 사용할 수 있다. pthreads는 POSIX 스레드를 지원하는 라이브러리로, Windows와 MINGW에서도 사용할 수 있다.

아래는 MINGW에서 pthreads 라이브러리를 사용하여 간단한 C++ 멀티스레드 예제이다.

#include <iostream>
#include <pthread.h>

void* myThread(void* arg) {
    int* num = (int*)arg;
    std::cout << "Thread ID: " << pthread_self() << ", Number: " << *num << std::endl;
    pthread_exit(NULL);
}

int main() {
    pthread_t thread1, thread2;
    int num1 = 1, num2 = 2;
    pthread_create(&thread1, NULL, myThread, (void*)&num1);
    pthread_create(&thread2, NULL, myThread, (void*)&num2);
    pthread_join(thread1, NULL);
    pthread_join(thread2, NULL);
    return 0;
}

위 예제는 두 개의 스레드를 생성하여 실행하는 간단한 프로그램이다. pthread 라이브러리를 사용하기 위해 -pthread 플래그를 컴파일 시에 추가해야 한다.

MINGW를 사용하여 멀티스레드 프로그램을 작성하는 것은 상대적으로 쉽고 편리하다. 이를 통해 손쉽게 프로그램의 성능을 향상시킬 수 있다.

그럼 여유로운 프로그래밍 되세요!

참고 자료