gpt4 book ai didi

c++ - boost::details::pool::pthread_mutex 和 boost::details::pool::null_mutex

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:12 27 4
gpt4 key购买 nike

boost::details::pool::pthread_mutexboost::details::pool::null_mutex 有什么区别。

我看到在最新的 boost 版本 - 1.42 中,boost::details::pool::pthread_mutex 类被删除了。我应该改用什么?

最佳答案

boost::details::pool::null_mutex 是一个什么也不做的互斥锁(锁总是立即成功)。当您不使用线程时,这是合适的。 Boost 池库根据 boost\pool\detail\mutex.hpp 中的以下代码段,选择将使用哪种互斥锁来同步对关键部分的访问,并使用互斥锁类型的 typedef: p>

#if !defined(BOOST_HAS_THREADS) || defined(BOOST_NO_MT) || defined(BOOST_POOL_NO_MT)
typedef null_mutex default_mutex;
#else
typedef boost::mutex default_mutex;
#endif

换句话说,如果配置表明不涉及线程(无论是对于整个 Boost,还是特别是对于池库),那么 null_mutex 将被使用(这基本上是打个盹)。

如果要支持线程,那么将使用 boost::mutex 类型,它来自 Boost 线程库(如果您的系统使用 pthreads,它将是基于 pthread 的互斥体) .

关于c++ - boost::details::pool::pthread_mutex 和 boost::details::pool::null_mutex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10187966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com