Tôi hiểu rằng biến bị khóa bởi boost::mutex::scoped_lock
được tự động mở khóa khi nó nằm ngoài phạm vi.Tăng Boost của Chủ đề :: unique_lock một khóa scoped?
Làm thế nào về boost::unique_lock
, nó có tự động mở khóa biến khi nằm ngoài phạm vi không?
Bất kỳ ai cũng có thể trỏ tham chiếu cho đối tượng địa lý đó.
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??? ......
}
Cảm ơn.
Vâng, đúng vậy. Tài liệu có tại đây: http://www.boost.org/doc/libs/1_49_0/doc/html/thread/synchronization.html#thread.synchronization.locks.unique_lock –
Nếu trình phá hủy không mở khóa, khi nào nó có bao giờ được mở khóa? –
Đường vòng khác của nó. 'boost :: mutex :: scoped_lock' là một typedef của' unique_lock'. http://www.boost.org/doc/libs/1_57_0/doc/html/thread/synchronization.html#thread.synchronization.mutex_types.mutex – balki