免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5031 | 回复: 8
打印 上一主题 下一主题

thread pool C程序,疑问求大牛指点 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2011-09-11 19:46 |只看该作者
好象是出错处理。

论坛徽章:
0
2 [报告]
发表于 2011-09-11 20:03 |只看该作者
mark 一下

论坛徽章:
0
3 [报告]
发表于 2011-09-14 18:06 |只看该作者
有可能出现的,如果main函数循环调用dispatch_threadpool,dispatch_threadpool_to_me函数差不多同时间处理完毕时,pool->tp_max_index个线程在运行,此时save_thread返回-1.

论坛徽章:
0
4 [报告]
发表于 2011-09-14 18:08 |只看该作者
代码 mark下 晚上看

论坛徽章:
0
5 [报告]
发表于 2011-09-14 21:08 |只看该作者
有可能出现的,如果main函数循环调用dispatch_threadpool,dispatch_threadpool_to_me函数差不多同时间处理 ...
edward_35 发表于 2011-09-14 18:06



是,这个情况在saveThread那里有可能. 但是你得继续看第二段红色的代码啊.达到最大线程数就不再创建了

论坛徽章:
0
6 [报告]
发表于 2011-09-15 11:05 |只看该作者
pool->tp_total >= pool->tp_max_index  这里是大于等于,所以会出现pool->tp_index =pool->tp_max_index 的情况,那么save_thread返回-1。
其实前面一段红色标识处的代码确实必要性不是很大,但确实有出现那样的情况。
原作者的意图可能是最多创建tp_max_index个线程,但是最好tp_max_index-1个线程在运行

论坛徽章:
0
7 [报告]
发表于 2011-09-15 13:50 |只看该作者
pool->tp_total >= pool->tp_max_index  这里是大于等于,所以会出现pool->tp_index =pool->tp_max_index  ...
edward_35 发表于 2011-09-15 11:05



  呵呵.感谢你的热心回复.
不过我还是不理解..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP