首页 > 编程语言 > 详细

[转]简单Linux C线程池

时间:2015-10-25 16:32:10      阅读:260      评论:0      收藏:0      [点我收藏+]

转自:http://www.cnblogs.com/venow/archive/2012/11/22/2779667.html

贴原文章过来,提示有敏感词。。那就不贴了。

以下为本博客作者注:

在threadpool_function函数中有这段代码,

while ((pool->queue_cur_num == 0) && !pool->pool_close)   //队列为空时,就等待队列非空        
{
     pthread_cond_wait(&(pool->queue_not_empty), &(pool->mutex));
}

有网友留言问,为什么此处不是if,而是while。

通过测shi,发现如果此处用if的话,线程池有很大的几率发生栈溢出的错误。经分析后,此处出现问题应该是和多线程的并发执行有关,此处用while会更安全。

[转]简单Linux C线程池

原文:http://my.oschina.net/u/2313065/blog/521801

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!