最終更新:2021-01-08 (金) 06:00:21 (1194d)  

std::mutex
Top / std::mutex

ミューテックス

http://ja.cppreference.com/w/cpp/thread/mutex

メモ

  • C++11およびそれ以降

メソッド

  • std::mutex::lock?ロックが掛かっている場合は解除されるまでブロック
    std::mutex::try_lock?ロックを掛けるのに成功するとtrue,既にロックが掛かっていると失敗し、false
    std::mutex::unlock?

便利なクラス

std::lock_guard

  • ミューテックスのlock()/unlock()処理をコンストラクタとデストラクタで確実に実行するためのクラス
  • スコープを抜けるときにミューテックスが開放される

その他

std::recursive_mutex?

std::shared_mutex? (C++17)

  • 共有可能なロック
    • 複数のスレッドから同時に取得可能
    • 1つでも取得されている間は排他的なロックは取得できない
    • 書き込みは通常のlockで、読み込みはshared_lockにすることによってパフォーマンスを上げることができる

std::shared_timed_mutex? (C++14)

  • std::shared_mutex?の機能に加え、ロックの取得を指定時間だけ施行するミューテックス

関連

  • std::lock?