У меня есть код, который ожидает операции записи в общую память.Если никто не пишет, он продолжает ждать.
Test* Foo::Get()
{
boost::interprocess::scoped_lock<boost::interprocess::interprocess_mutex> lock ( mutex ) ; // mutex is boost::interprocess::interprocess_mutex
if ( this->check == 0 )
this->interprocessCondition.wait ( lock ) ; // interprocessCondition is boost::interprocess::interprocess_condition
...
}
Когда я делал выборку, я обнаружил, что она потребляет около 90% процессорного времени.
Может кто-нибудь помочь мне решить эту проблему производительности?Пожалуйста, смотрите прикрепленное изображение.