【发布时间】:2017-07-26 17:17:54
【问题描述】:
我了解到在使用线程时可能会遇到的以下问题:
当你将一个值写入内存中的变量时,该值不一定会写入内存位置(该值可以写入缓存),因此如果另一个线程正在读取该变量,它不会读取其他线程刚刚写入的值。
1234563您的线程正在尝试读取它,它不会读取另一个线程刚刚写入的值。
1234563一个线程必须等待另一个线程完成计算)。
编译器和/或 CPU 可能会乱序执行您的程序指令。
您可能会出现死锁(如果每个线程在继续之前都在等待另一个线程发出信号)。
在使用线程时我还会遇到其他问题吗?
【问题讨论】:
-
谷歌关于 RaceConditions
-
函数需要可重入。
C标准库相当安全,strtok是一个明显的例外。
标签: c multithreading winapi