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

多线程问题之”对象咋都没了“

时间:2014-07-27 21:31:45      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

    虽然以前用过多线程,但是时间一久再用的话还会出不少问题。我的项目中用到了多线程,为了实现异步请求的效果。主线程负责创建异步请求对象,并将其插入到请求队列中去,如果队列原先为空,则唤醒异步线程,然后直接返回。异步线程则从请求队列中取出异步请求对象,然后调用相关的功能接口,并实现回调。

     但当我调试的时候,发现了一个问题。请求对象插入请求队列时,还是很正常的;但当异步线程取出请求对象时,请求对象里指向其他对象的指针已经失效,这让我很郁闷。最后我才发现是因为主线程插入完请求对象后,就没什么工作了,然后就退出了。于是,许多需要用的对象都被提前析构了,异步线程当然找不到他们了。

     解决方法也很简单,就是主线程要等所有异步线程退出了后才退出,比如用pthread的join就可以实现。

多线程问题之”对象咋都没了“

标签:

原文地址:http://www.cnblogs.com/guoxiaoqian/p/3871103.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!