pthread_create() 함수 이용했을 때, thread가 두번 호출되는 것 처럼 나타납니다. 왜 그런것인가요?
487
投稿した質問数 8
#include<stdio.h>
#include<stdlib.h>
#include"pthread.h"
void thread(void vargp);
void main()
{
pthread_t tid;
pthread_create(&tid,NULL,thread,NULL);
//pthread_join(tid,NULL);
printf("End of main\n");
exit(0);
}
void thread(void vargp)
{
printf("thread is created!:%lu\n",pthread_self());
return NULL;
}
결과가 3가지로 나타납니다.
End of main
End of main
thread is created!:thread is created!:140319790982912
End of main
thread is created!:140328472020736
thread is created!:140328472020736
回答 1
1
안녕하세요 smile2000님
fork()와 마찬가지로 thread를 생성한 후 join으로 기다려주지 않으면 그냥 지나가버릴 수도 있습니다. 혹은 운좋게 thread가 생성될 수도 있습니다. 한마디로 결과를 예측하기 어렵게 됩니다. 그래서 결과가 여러 가지 형태로 나타나는 것입니다.
1번 결과는 thread가 생성/실행되지 않고 메인 코드가 종료된 경우이고,
2번 결과는 thread가 생성/실행된 후 메인 코드가 종료된 경우입니다.
3번의 결과는.. 저도 원인을 잘 모르겠습니다.ㅠ
실험 정신이 뛰어나신 것 같습니다. :) 기대하신 답변드리지 못해 죄송합니다.ㅠ
inotify 객체에 등록된 watch descriptor 해제 관련 질문
0
37
2
select API 실습 코드 질문
0
40
2
wsl에서 fcntl사용
0
72
2
inotify_event 구조체 질문 [파일 이벤트 - 라이브 프로그래밍]에서...
0
179
2
./stat 파일이름
0
273
2
fopen r, r+모드 차이
0
460
2
강의를 모두 수강하고 스스로 구현하면 좋을 과제나 프로젝트 주제가 있을까요?
0
326
1
pthread 질문
0
419
2
I/O Multiplexing(select) 질문
0
325
1
inotify.c. ret 질문
0
302
1
inotify.c 질의합니다.
1
317
1
child process
0
715
1
read/blocking
0
564
1
flock
0
565
1
system call
0
598
1
fork() 함수 사용시 결과 관련 질문
0
371
1
exec 관련 궁금한 사항
0
450
2
파일 디스크립터와 FILE 구조체에 대한 질문
0
552
1
buf 선언에 따른 read() fail 문제
0
251
2
파일 이벤트 - 라이브 프로그래밍 에서 캐스팅 질문
0
254
1
2번 multi thread 방법 질문
0
242
1
segmentation fault 발생 관련 문의
1
842
1
라이브 코딩 실습 코드
0
235
1
화면이 짤려요
0
549
4

