首页 新闻 会员 周边 捐助

线程池作为类成员,类析构早于线程池析构,导致崩溃

0
悬赏园豆:100 [已解决问题] 解决于 2025-01-10 10:44

线程池作为A类的成员时,由于A类析构早于线程池的析构,导致线程池中执行的线程中使用的变量被释放导致coredump,怎么解决

C++
yaohuili的主页 yaohuili | 初学一级 | 园豆:112
提问于:2025-01-09 18:26
< >
分享
最佳答案
1

那 A 类析构的时候就得等所有线程池的线程结束之后才真正结束析构,要么线程中的变量拷贝一份或者作为线程的局部变量(不要引用,要值)。

收获园豆:100
寂静的羽夏 | 老鸟四级 |园豆:2241 | 2025-01-09 18:41

嗯嗯,一般线程池的使用是放在类内作为成员的嘛,还是说有别的方法

yaohuili | 园豆:112 (初学一级) | 2025-01-09 18:47

@yaohuili: 你线程池可以单独一个类进行管理,为了保证稳定性,传给处理的参数尽可能用值类型,而非引用,或者智能指针也可以,这就相当于把所有权交给智能指针管理了。

寂静的羽夏 | 园豆:2241 (老鸟四级) | 2025-01-09 18:52

@寂静的羽夏: OKOK,感谢

yaohuili | 园豆:112 (初学一级) | 2025-01-09 19:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册