spin_mutex
[mutex.spin_mutex]
spin_mutex
は、スピンロックによりミューテックスの要件をモデル化するクラスです。spin_mutex
クラスは、[thread.mutex.requirements] ISO C++ セクションのミューテックス・タイプのすべての要件を満たします。spin_mutex
クラスは、フェアではなく再帰的ではありません。
// <oneapi/tbb/spin_mutex.h> ヘッダーで定義
namespace oneapi {
namespace tbb {
class spin_mutex {
public:
spin_mutex() noexcept;
~spin_mutex();
spin_mutex(const spin_mutex&) = delete;
spin_mutex& operator=(const spin_mutex&) = delete;
class scoped_lock;
void lock();
bool try_lock();
void unlock();
static constexpr bool is_rw_mutex = false;
static constexpr bool is_recursive_mutex = false;
static constexpr bool is_fair_mutex = false;
};
} // namespace tbb
} // namespace oneapi
メンバークラス
- class scoped_lock
scoped_lock
クラスに相当します。Mutex の要件を参照してください。
メンバー関数
- spin_mutex()
アンロックされた
spin_mutex
を作成します。
- ~spin_mutex()
アンロックされた
spin_mutex
を破棄します。
- void lock()
ロックを取得します。ロックが取得できたらスピンします。
- bool try_lock()
ロック (非ブロッキング) の取得を試みます。ロックがは取得された場合は true、それ以外は false を返します。
- void unlock()
スレッドが保持するロックを解放します。