Boost.Threadにあるpromiseとfutureという2つのクラスは、 スレッド間において安全にデータを読み書きし通知する方法のひとつとして提供されています。 (非同期処理の結果を生成するために使われたりします) promiseがデータを書き、futureはpromiseによってデータが書かれるまで待機して値を取り出します。 promise::get_future()で待機用のfutureを得ることができるので、そのインスタンスで待機します。 #include <iostream> #include <boost/thread.hpp> #include <boost/ref.hpp> void thread_func(boost::promise<int>& p) { boost::this_thread::sleep(boost::posix_time::seconds(3)