C++のマルチスレッドにおけるMutexの使用方法を教えてください

C++でマルチスレッドの同期にミューテックスを用いる方法

  1. ヘッダファイルを含めるには、まずヘッダファイル を含めなければならない。
  2. ミューテックスオブジェクトを作成する:std::mutexクラスを使ってミューテックスオブジェクトを作成する。
std::mutex mutex;
  1. ミューテックス.ロック()
mutex.lock();
  1. ミューテックスのロック解除
mutex.unlock();

以下に完全なサンプルコードを示します。

#include <iostream>
#include <thread>
#include <mutex>
std::mutex mutex;
void printMessage(int id, const std::string& message) {
mutex.lock();
std::cout << "Thread " << id << ": " << message << std::endl;
mutex.unlock();
}
int main() {
std::thread t1(printMessage, 1, "Hello");
std::thread t2(printMessage, 2, "World");
t1.join();
t2.join();
return 0;
}

上記のコードサンプルでは、Mutexオブジェクトmutexを作成し、printMessage関数内でmutex.lock()でロックし、ブロックの最後にmutex.unlock()でアンロックします。これにより、共有リソースには一度に1つのスレッドのみがアクセスできるようになり、競合状態やデータ競合を防ぎます。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds