pthread 예제 코드
프로그래밍/c,c++ 2022. 5. 9. 22:37반응형
pthread 사용을 위한 기본 예제
#include <stdio.h> #include <pthread.h> #include <unistd.h> static bool sIsStop = false; static pthread_t sThreadId = 0; static void *testThread(void *data) { while (true) { if (sIsStop) { break; } printf("%s[%d] TID = %d Running thread\n", __FUNCTION__, __LINE__, gettid()); // add code usleep(1000 *1000); } sThreadId = 0; return NULL; } int startThread() { if (sThreadId == 0) { sIsStop = false; pthread_create(&sThreadId, NULL, &testThread, NULL); } else { printf("%s[%d] Thread is running\n", __FUNCTION__, __LINE__); } return 0; } int stopThread() { if (sThreadId != 0) { sIsStop = true; pthread_join(sThreadId, NULL); } else { printf("%s[%d] Thread is not running\n", __FUNCTION__, __LINE__); } return 0; } int main() { startThread(); usleep(1000 *1000); printf("%s[%d] TID = %d test print\n", __FUNCTION__, __LINE__, gettid()); usleep(1000 *1000); printf("%s[%d] TID = %d test print\n", __FUNCTION__, __LINE__, gettid()); usleep(1000 *1000); printf("%s[%d] TID = %d test print\n", __FUNCTION__, __LINE__, gettid()); stopThread(); return 0; }
실행 결과
$ ./a.out testThread[14] TID = 23131 Running thread main[52] TID = 23130 test print testThread[14] TID = 23131 Running thread main[54] TID = 23130 test print testThread[14] TID = 23131 Running thread main[56] TID = 23130 test print testThread[14] TID = 23131 Running thread
반응형