boost::mutex::scoped_lock
でロックされた変数は、範囲外になると自動的にロック解除されることを理解しています。ブーストスレッドのboost :: unique_lockはスコープロックですか?
どのようにboost::unique_lock
については、範囲外のときに自動的に変数のロックを解除しますか?
誰もその機能の参照を指すことができます。
double x;
boost::mutex x_mutex;
void foo()
{
{
boost::unique_lock<boost::mutex> lock(x_mutex);
x = rand();
}
...... some calculation which takes 10 second ......
...... is x still locked here??? ......
}
ありがとうございます。
はい、そうです。ドキュメントは次のとおりです。http://www.boost.org/doc/libs/1_49_0/doc/html/thread/synchronization.html#thread.synchronization.locks.unique_lock –
デストラクタがロックを解除しなかった場合、それは今までにロックが解除される? –
その反対のラウンド。 'boost :: mutex :: scoped_lock'は' unique_lock'のtypedefです。 http://www.boost.org/doc/libs/1_57_0/doc/html/thread/synchronization.html#thread.synchronization.mutex_types.mutex – balki