boost :: atomic имеет функцию хранения и загрузки функции. Однако есть функция, которая может возвращать и текущее значение и устанавливать значение в одно и то же время, что означает, что две операции являются атомарными.активировать атомную нагрузку и хранить в то же время
После кода является проблемой
void Initialize()
{
///if some other thread is initializing, skip this step
if (m_initializing.load(boost::memory_order_relaxed))
return S_FALSE;
m_initializing.store(true, boost::memory_order_relaxed);
return S_OK;
}
Если два потока вызывает эту функцию инициализации одновременно. поток A и B набирают нагрузку и возвращают false, они будут вызывать хранилище одновременно. Поэтому я хочу атомную функцию. если A обнаруживает, что m_initializing является ложным и одновременно устанавливается значение true. так что поток B знает, что на нем работает поток.
«загрузка и хранение в одно и то же время» называется обмен – harold
Большое спасибо. Я нахожу это – ernst