#include <pthread.h>
#include <cstdio>
void *printa(void *) {
printf("a");
return NULL;
}
void *printb(void *) {
printf("b");
return NULL;
}
int main() {
pthread_t pa, pb;
pthread_create(&pa, NULL, printa, NULL);
pthread_create(&pb, NULL, printb, NULL);
for(;;);
}
"a"와 "b"를 순서에 관계없이 인쇄 할 수 있지만 아무 것도 인쇄하지 않고 실행하고 종료 할 수 있습니다. 왜? ADD : 이유는 스레드가 실행되기 전에 주 기능 종료입니다. 그래서 for (;;);를 추가합니다. 메인의 끝에서 "a"와 "b"는 절대로 인쇄되지 않는 것 같습니다.이 코드 조각이 출력없이 실행되는 이유는 무엇입니까 (약 pthread)?
... 또는 초기 프로세스 종료를 막는 다른 메커니즘. –