gpt4 book ai didi

C++ - 线程同步

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:14 25 4
gpt4 key购买 nike

我有这个问题

Foo * foo = new Foo();

void A(){
foo->a();
}

void B(){
foo->b();
}

void C(){
foo->reloadAll();
}

一旦我进入方法C并开始重新加载foo,我不想调用A或B。但是,A或B可以一起调用。在那种情况下,我不想锁定任何线程。

如何同步这个?我可以使用 C++14 提供的功能。目前,我正在对原子变量使用主动等待(在 sleep 时上厕所),但这并不理想。

编辑:在线程中调用 A、B 或 C 是​​由 GUI(用其他语言编写)驱动的,因此我在 C++ 应用程序中没有真正的线程。

最佳答案

看起来像是读者-作者问题。 A 和 B 需要作为读者锁定,C 作为写入者。看这里:Reader/Writer Locks in C++

关于C++ - 线程同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47989344/

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