所以C20引入了std::jthread,据我所知,它在各个方面都比std::thread好。因此,除了通常的限制,如C20的可用性,实现的质量,与库的交互,…- 是否有任何情况下std::thread是更好的选择?
std::jthread
std::thread
arknldoa1#
std::jthread就像拥有std::stop_source的std::thread。C++是一种语言,它主要围绕着不必为你不使用的东西付费的概念而构建。所以:如果你不需要一个std::stop_source,你应该更喜欢一个std::thread,这样你就不用花钱了。即使你确实需要一个,你仍然可能不喜欢使用std::jthread,而把你的停止源放在其他地方,因为你可能会使用boost::intrusive_ptr而不是std::shared_ptr,即。能够管理数据本地性。
std::stop_source
boost::intrusive_ptr
std::shared_ptr
1条答案
按热度按时间arknldoa1#
std::jthread
就像拥有std::stop_source
的std::thread
。C++是一种语言,它主要围绕着不必为你不使用的东西付费的概念而构建。
所以:如果你不需要一个
std::stop_source
,你应该更喜欢一个std::thread
,这样你就不用花钱了。即使你确实需要一个,你仍然可能不喜欢使用
std::jthread
,而把你的停止源放在其他地方,因为你可能会使用boost::intrusive_ptr
而不是std::shared_ptr
,即。能够管理数据本地性。