gpt4 book ai didi

c++ - 用于线程间通信的 volatile 和 mutex

转载 作者:太空宇宙 更新时间:2023-11-04 13:30:14 30 4
gpt4 key购买 nike

<分区>

我有以下类(class)

class Thread
{
int m_state;
Mutex m;
CondVar v;

Thread(): m_state( 0 ) {}

write()
{
// Get mutex m
// m_state = 1;
// signal v
};

read()
{
// Get mutex m
while( m_state == 0 )
{
wait v;
};
};
};

read() 和 write() 可以在不同的线程上调用。

在这种情况下,我们是否必须使 m_state 或 volatile 或编译器确保防止优化(例如从内存读取 m_state 到寄存器并在寄存器上旋转)?

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com