[c언어] 스레드(thread) 생성 방법

스레드는 프로세스 내에서 실행되는 흐름의 단위로, 하나의 프로세스에는 여러 개의 스레드가 동시에 실행될 수 있습니다. 각각의 스레드는 독립적으로 실행되지만, 프로세스 내의 리소스를 공유할 수 있습니다.

스레드 생성 방법

C 언어에서는 다음과 같은 방법으로 스레드를 생성할 수 있습니다.

  1. 헤더 파일 추가: <pthread.h> 헤더 파일을 포함하여 POSIX 스레드 라이브러리의 함수를 사용합니다.

  2. 스레드 생성: pthread_create 함수를 사용하여 스레드를 생성합니다. 이 함수는 새로운 스레드를 시작하고, 해당 스레드에서 실행할 함수를 지정합니다.

다음은 간단한 예제 코드입니다.

#include <stdio.h>
#include <pthread.h>

void* myThreadFunction(void* arg) {
    // 스레드에서 실행할 작업을 구현
    printf("This is my thread function.\n");
    return NULL;
}

int main() {
    pthread_t myThread;
    int result = pthread_create(&myThread, NULL, myThreadFunction, NULL);
    if (result != 0) {
        perror("Thread creation failed");
        return 1;
    }
    
    // 기본 스레드에서 실행될 코드
    printf("Main thread function.\n");

    // 스레드가 종료될 때까지 대기
    pthread_join(myThread, NULL);

    return 0;
}

위의 예제 코드에서 pthread_create 함수를 사용하여 myThreadFunction을 실행하는 스레드를 생성하고, pthread_join 함수를 사용하여 해당 스레드의 종료를 기다립니다.

스레드를 다룰 때는 주의가 필요하며, 스레드 간의 동기화와 관련된 문제에 대한 이해가 중요합니다.

참고 문헌: