쓰레드 질문입니다..
글쓴이: zombie007 / 작성시간: 화, 2003/10/21 - 10:33오전
쓰레드를 100개를 생성하려구 하는데요..
100개를 생성한후 100 초후 살아 있는지 체크하는 프로그램을 구현했는데..
생성은 되는데.. 100초후 살아있는지 체크도 하기전에 프로그램이 끝이 납니다..
이것을 해결하려면.. main에서 무한 loop를 돌리는 방법 밖에 없나여..
다른 방법이 없을 까요..
int main(int argc, char *argv[]) { create_thread(); } void create_thread() { int i; for(i = 0; i < 100; i++) { pthread_create(&p_th[pth_cnt++], NULL, connect_thread, (void *) NULL); sleep(1); } } void * connect_thread(void *arg) { int threadnum; pthread_detach(pthread_self()); threadnum = pth_cnt; printf("create thread %d\n", threadnum); sleep(100); printf(" live thread %d\n", threadnum); }
Forums:
메인함수자체도 하나의 쓰레드입니다. 그리고 이 메인 쓰레드가 종료되면 프
메인함수자체도 하나의 쓰레드입니다. 그리고 이 메인 쓰레드가 종료되면 프로세스내의 모든 쓰레드들도 강제종료됩니다.
그러므로, 메인에서 100초 이상을 기다리시든가 아니면 detach 하지마시고 join 함수를 사용하셔서 기다리시는게 맞다고 봅니다.
그럼, 이만...
댓글 달기