我有两个使用CreateThread()创建的线程,我有一个线程写入的全局变量,另一个线程从中读取。
现在根据我的理解,编译器和/或CPU可以进行各种优化,这可能意味着例如当我向变量写入值时,该值可以写入某个缓存而不是直接写入到内存(因此其他线程将无法看到它)。
我已经读过我可以在关键部分包装访问变量的代码,但documentation表示关键部分只会强制执行互斥,并且没有说明直接强制写入内存并直接从记忆中读取。
请注意,我没有使用 volatile 关键字,我想知道如何在纯WinAPI中完成此操作(因为我以后可以使用C以外的语言)。
答案 0 :(得分:1)