我有两个使用 CreateThread() 创建的线程,我有一个全局变量,一个线程写入该变量,另一个线程读取该全局变量。
现在根据我的理解,编译器和/或CPU可以进行各种优化,这可能意味着例如当我向变量写入值时,该值可以写入某些缓存中而不是直接写入到内存(因此其他线程将无法看到它)。
我读到我可以将访问变量的代码包装在关键部分中,但是 documentation说临界区只会强制互斥,并没有提及强制直接写入内存和直接从内存读取。
请注意,我不知道要使用 volatile 关键字,我想知道这是如何在纯 WinAPI 中完成的(因为我稍后可以使用 C 以外的语言) ).
最佳答案
关于c - WinAPI中如何让两个线程共享一个全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42660921/