タグ

mutexに関するyukimori_726のブックマーク (5)

  • 2010-12-27

    Boostに以前からread-writeロックは実装されていたようですがバグがあったとかで最近の物ではupgrade_lock, upgrade_to_unique_lockにさし変わっています。 ただのロックと比べてパフォーマンスが出やすい上に素性の良い設計だと思うので紹介してみようと思います。 read lock read-lockをする場合はshared_mutexを引数にshared_lockをかけてやればいいです。 #include <boost/thread.hpp> using namespace boost; shared_mutex mutex; void reader(){ shared_lock<shared_mutex> read_lock(mutex); // ここでロック! // クリティカルセクション } スコープを外れると同時にshared_lockのデスト

    2010-12-27
  • How pthread_mutex_lock is implemented

  • C++11のthreadで遊んでみる その2 - mutex編 - minus9d's diary

    この記事は続き記事です。目次→C++11のthreadで遊んでみる - minus9dの日記 - mutexを使って排他制御 スレッドを4つ作って、それぞれのスレッドでIDを表示するプログラムを書いてみる。 #include <iostream> #include <thread> #include <vector> void worker() { std::cout << "thread id: " << std::this_thread::get_id() << std::endl; } int main() { // スレッドを4つ作る std::vector<std::thread> ths(4); for (auto& th : ths) { th = std::thread(worker); } // すべてのスレッドが終わるのを待つ for (auto& th : ths)

    C++11のthreadで遊んでみる その2 - mutex編 - minus9d's diary
  • std::mutex - C++入門

    std::mutex とは、C++で同時に複数のスレッドによってアクセスされる共有データを保護するための同期プリミティブです。 読み方 std::mutex えすてぃーでぃー みゅーてっくす 概要 mutexを使用してロックとアンロックを行うことで、データを安全に操作できます。 lock mutexが使用できない場合は、ブロックし、ロックします。 try_lock mutexがロックできない場合は、戻ります。 unlock mutexのロック(lock)を解放します。 std::thread::thread いろいろなスレッドの動かし方 std::unique_lock タイムアウト付きのロック std::lock 複数のmutexをロックするための遅延ロック 簡単なmutexの例 ソースコード std_mutex1.cpp #include <iostream> #include <th

  • pthread mutexで排他ロックする方法 - C言語入門

    マルチスレッドプログラミングでスレッド間で共有データにアクセスするときに、mutex(MUTual EXclusion, ミューテックス)を用いて、排他ロックを行うことがあります。プログラムに競合状態を引き起こすようなコードがあると、計算の整合性、データの整合性が失われます。競合状態を避ける目的で、クリティカルリージョンをロックで保護します。pthread では、pthread_mutex_tとpthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock を用いて、ロックをコントロールします。 読み方 mutex みゅーてっくす 競合状態 きょうごうじょうたい MUTual EXclusion みゅーちゃる えくすくるーじょん クリティカルセクション くりてぃかるせくしょん critial section くりてぃかるせくし

  • 1