[c언어] C 언어에서의 스레드 종료 방법

C 언어에서 스레드를 안전하게 종료하는 방법에 대해 알아보겠습니다.

스레드 종료 방법

스레드를 종료하는 방법으로는 다음과 같은 방법들이 있습니다.

  1. 플래그를 활용한 종료: 스레드 함수 내에서 확인할 수 있는 플래그를 설정하여 스레드를 종료시키는 방법.
  2. 시그널을 이용한 종료: 시그널을 활용하여 외부에서 스레드에 종료 시그널을 전달하여 스레드를 종료시키는 방법.

플래그를 활용한 종료

아래는 플래그를 활용하여 스레드를 종료하는 간단한 예제 코드입니다.

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

int flag = 0;

void* thread_function(void* arg) {
    while (!flag) {
        // 스레드 동작
    }
    // 스레드 종료 처리
    pthread_exit(NULL);
}

int main() {
    pthread_t thread;
    // 스레드 생성
    pthread_create(&thread, NULL, thread_function, NULL);
    
    // 일정 시간 후 플래그 설정을 통한 스레드 종료
    sleep(5);
    flag = 1;

    // 스레드 종료 대기 및 정리
    pthread_join(thread, NULL);
    return 0;
}

시그널을 이용한 종료

시그널을 이용하여 스레드를 종료하는 방법은 복잡하므로 여기서는 자세한 설명을 생략하겠습니다.

마무리

C 언어에서 스레드를 종료하는 방법으로는 플래그를 활용한 방법이 간단하고 효과적입니다. 시그널을 이용한 방법은 보다 복잡하므로 필요에 따라 고려해야 합니다.

이상으로 C 언어에서의 스레드 종료 방법에 대해 알아보았습니다.

참고 문헌: https://www.joinc.co.kr/w/Site/Thread/Beginning/Pthread/ThreadCreate#A5.1BCC1BF5