有理由使用std::thread而不是std::jthread吗?



所以c++ 20引入了std::jthread,据我所知,它在各个方面都比std::thread好。因此,除了c++ 20的可用性、实现质量、与库的交互等通常的限制之外,……有没有可能std::thread是更好的选择?

std::jthread就像一个拥有std::stop_sourcestd::thread

c++是一门高度围绕"不用为不用的东西买单"这一概念构建的语言。

所以:如果你不需要std::stop_source,你应该更喜欢std::thread,这样你就不用花钱买了。

即使你确实需要一个,你仍然可能不喜欢使用std::jthread,并将你的停止源保存在其他地方,出于同样的原因,你可能会使用boost::intrusive_ptr而不是std::shared_ptr,即能够管理数据局部性。

最新更新