gpt4 book ai didi

c++ - 发布版本中的缓存刷新问题

转载 作者:行者123 更新时间:2023-11-28 00:27:16 24 4
gpt4 key购买 nike

我在这段代码中看到了一个奇怪的问题:

namespace{
std::vector<int> my_vect;
}

thread1:
sleep(5);
my_vect.push_back(1);

main_thread:
while(my_vect.empty());
//do something
return;

在调试中构建时,一切都按预期工作。在释放时,while 循环永远不会退出...

当我从忙等待变为 while 循环时:

while(my_vect.empty())
{
sleep(1);
}

构建的版本再次开始工作。

知道为什么会这样吗?

最佳答案

是的:对共享变量的非同步访问是未定义行为,任何事情都可能发生。您观察到的行为并不是特别异常。

关于c++ - 发布版本中的缓存刷新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24369918/

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