码迷,mamicode.com
首页 > 编程语言 > 详细

[转]简单Linux C线程池

时间:2015-10-25 16:34:13      阅读:202      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!