所以c++ 20引入了std::jthread
,据我所知,它在各个方面都比std::thread
好。因此,除了c++ 20的可用性、实现质量、与库的交互等通常的限制之外,……有没有可能std::thread
是更好的选择?
std::jthread
就像一个拥有std::stop_source
的std::thread
。
c++是一门高度围绕"不用为不用的东西买单"这一概念构建的语言。
所以:如果你不需要std::stop_source
,你应该更喜欢std::thread
,这样你就不用花钱买了。
即使你确实需要一个,你仍然可能不喜欢使用std::jthread
,并将你的停止源保存在其他地方,出于同样的原因,你可能会使用boost::intrusive_ptr
而不是std::shared_ptr
,即能够管理数据局部性。