请问这里主线程阻塞等待多个子线程执行完,为什么用这种方式?

2015-07-29 18:24:03 +08:00
 zippera
看到 fastcgi C 多线程的一个例子,main 里开启了多个线程,然后主线程中没有使用 pthread_join 来阻塞获取所有子线程的退出状态,而是调用了一次线程工作函数,类似这样:

pthread_t id[THREAD_COUNT];

for (i = 1; i < THREAD_COUNT; i++)
pthread_create(&id[i], NULL, doit, (void*)i);

doit(0);

完整代码在这里:
www.fastcgi.com/devkit/examples/threaded.c
1901 次点击
所在节点    问与答
4 条回复
zippera
2015-07-30 11:03:29 +08:00
自己顶
h4x3rotab
2015-07-30 16:30:09 +08:00
自己也算一个线程,开了THREAD_COUNT-1个线程,总数刚好
zippera
2015-07-30 20:38:26 +08:00
@h4x3rotab 谢谢,这样使用相对于 pthread_join 有什么好处呢?
h4x3rotab
2015-08-03 00:53:07 +08:00
@zippera 少开一个线程,本质上区别并不大,对于大量创建删除线程的情况下,可以减少一点点性能损失,但是基本可以忽略,极端情况下可以这么用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/209347

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX