[c언어] C 언어에서의 스레드 종료 방법
C 언어에서 스레드를 안전하게 종료하는 방법에 대해 알아보겠습니다.
스레드 종료 방법
스레드를 종료하는 방법으로는 다음과 같은 방법들이 있습니다.
- 플래그를 활용한 종료: 스레드 함수 내에서 확인할 수 있는 플래그를 설정하여 스레드를 종료시키는 방법.
- 시그널을 이용한 종료: 시그널을 활용하여 외부에서 스레드에 종료 시그널을 전달하여 스레드를 종료시키는 방법.
플래그를 활용한 종료
아래는 플래그를 활용하여 스레드를 종료하는 간단한 예제 코드입니다.
#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