首页 > 代码库 > 多线程问题之”对象咋都没了“
多线程问题之”对象咋都没了“
虽然以前用过多线程,但是时间一久再用的话还会出不少问题。我的项目中用到了多线程,为了实现异步请求的效果。主线程负责创建异步请求对象,并将其插入到请求队列中去,如果队列原先为空,则唤醒异步线程,然后直接返回。异步线程则从请求队列中取出异步请求对象,然后调用相关的功能接口,并实现回调。
但当我调试的时候,发现了一个问题。请求对象插入请求队列时,还是很正常的;但当异步线程取出请求对象时,请求对象里指向其他对象的指针已经失效,这让我很郁闷。最后我才发现是因为主线程插入完请求对象后,就没什么工作了,然后就退出了。于是,许多需要用的对象都被提前析构了,异步线程当然找不到他们了。
解决方法也很简单,就是主线程要等所有异步线程退出了后才退出,比如用pthread的join就可以实现。
多线程问题之”对象咋都没了“
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。