#boost #boost-thread #thread-local #thread-local-storage
#повышение #повышающий-поток #поток-локальный #поток-локальное хранилище
Вопрос:
У меня есть следующий фрагмент кода
class MCSLock
{
static boost::thread_specific_ptr< mcs_lock > tls_node;
public:
MCSLock()
{
if( tls_node.get() == 0 )
tls_node.reset( new mcs_lock() );
}
};
Я понимаю, что у каждого потока есть собственное пространство, разрешенное для tls_node. Это означает
конструктор, в котором мы вызываем get() и reset(), потокобезопасен.
Правильно ли я понимаю?
Спасибо.
Ответ №1:
Да, каждый вызов будет приниматься разными (локальными) объектами потока.