C++11以降だとstd::mutexとstd::lock_guardがありますし、これらは簡単なクラスだから古いC++でも数秒で自作できますし、でも排他スコープが明確なJava/C#のsynchronizedの記法がうらやましいなーとこんなマクロ書いちゃうこと多いですよね。(よね?) #define synchronized(monitor) \ if (auto __lock = std::make_unique<std::lock_guard<std::mutex>>(monitor)) std::vector<int> data_; // いろんなスレッドから読み書きするデータ std::mutex monitor_; // mutexオブジェクトを宣言しておいて ... synchronized (motinor_) { // 排他制御された処理 data_.doSomethin