在互斥锁解锁

时间:2015-06-10 11:14:25

标签: c++ multithreading boost

在我的应用程序中,我有一个计算器线程和一个Main_Thread。两者都处理相同的数据。计算器线程进行预先计算,主线程可视化生成的数据。为了防止它们同时更改和读取数据,我使用boost mutex作为关键部分。

boost::recursive_mutex m_guard_calculation;

计算器线程:

m_guard_calculation.lock();
// do hard calculation work
m_guard_calculation.unlock();

主线程:

void update() //called every frame
{
    if (m_guard_calculation.try_lock()) //only visualize if not locked, otherwise just skip
    {
        // do hard visualization work
        m_guard_calculation.unlock();
    }
}

在那种情况下,我的计算器线程将在某个时刻停止工作。 我假设我必须以某种方式唤醒我的计算器线程。我该怎么做?

0 个答案:

没有答案