thread에서 메인이 wait을 하고 생성된 쓰레드가 signal로 메인을 깨우는 이유는 무엇인가요?
thread에서 메인이 wait을 하고 생성된 쓰레드가 signal로 메인을 깨우는 이유는 무엇인가요?
http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/Pthread_API_Reference
위 조인시위키의 쓰레드 동기화 관련 예제(3.11. 예제코드)에서
-----------------------------------------------------------
main()
중략--
for(i = 0; i < thread_list.size(); i++ )
{
pthread_mutex_lock(&sync_mutex);
if (pthread_create(&tident[i], NULL, thread_list[i], (void *)NULL) <0)
{
perror("error:");
exit(0);
}
pthread_cond_wait(&sync_cond, &sync_mutex); // 스스로(main process) wait하고 기다린다.
pthread_mutex_unlock(&sync_mutex);
}
생략--
---------------------------------------------------------------------
void *ping(void *data)
{
int i=0;
pthread_mutex_lock(&sync_mutex);
pthread_cond_signal(&sync_cond); // main을 깨운다.
pthread_mutex_unlock(&sync_mutex);
while(1)
{
생략
-------------------------------------------------------------------------
저렇게 메인이 생성한 쓰레드가 메인을 깨우는 구조로 하는 이유가 무엇인가요?
1. 쓰레드가 제대로 생성되었는지 확인
2. 다른이유
댓글 달기