- 论坛徽章:
- 0
|
- void * start_thread(void *arg) {
- //...
- pthread_exit(NULL);
- }
- int main() {
- pid_t pid;
- int i;
- if ((pid = fork()) < 0) {
- perror("fork error");
- }
- else if (pid == 0) {
- for (; i < 100; ++i) {
- pthread_t tid;
- err = pthread_create(&tid, NULL, start_thread, NULL);
- if (err) {
- perror("thread create error");
- continue;
- }
- err = pthread_detach(tid);
- if (err) {
- perror("thread detach error");
- continue;
- }
- }
- }
- else {
- if (0 > waitpid(pid, &status, 0))
- perror("wait error");
- //...
- }
- return 0;
- }
复制代码 在子进程里创建了一堆子线程, 但创建了之后走到return 0子进程就结束了,还没跑完的子线程也就终止了
waitpid根本就没用了,有什么办法让父进程阻塞等待直到子进程的所有线程都退出吗 |
|