據我所知,被boost::mutex::scoped_lock
鎖定的變量在超出範圍時會自動解鎖。Boost線程的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 – 2012-02-29 05:45:09
如果析構函數沒有解鎖它,什麼時候會它曾經獲得解鎖? – 2012-02-29 05:50:41
它的另一回合。 '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 2014-11-18 20:48:02