日期:2014-05-16  浏览次数:20710 次

频繁起pthread会导致pthread出错误吗?
本帖最后由 guolisen 于 2012-12-26 21:36:48 编辑
频繁起pthread会导致pthread出错误吗?

我写了个Tcp echo server应用,分为前端用libev处理连接,一有连接就起个线程收数据(detach线程),将数据转成zmq数据后发送到后端。
后端是一个zeromq Server,zeromq处理完数据后再返回。处理完线程自己退出,但是前段的libev处没有用threadpool,直接pthread起的,起多少个没做限制(但一般不超过100个)

现在的问题是客户端起100个线程向这个server发数据,大概几个小时后zeromq里面的pthread_mutex_destroy 就会返回非0值导致assert报错。请问这个zmq的错误,会是起线程的问题吗?


------解决方案--------------------
pthread本身是不会出错的,是不是zmq引起的问题?
------解决方案--------------------
pthread_mutex_destroy出错一般就是mutex还没有unlock,这不是pthread的问题,肯定是code的问题
------解决方案--------------------
pthread本身没有错误,关键是对临界资源的利用问题吧  要用到互斥锁。。