这是一个场景
例如,我们有两个线程都访问同一段代码,并且该代码有一个变量
int a=200;
线程A进入并将其值更改为a=300;
那么线程B访问这个变量,线程B会得到200还是300?
最佳答案
不保证两个线程以任何固定顺序执行; A 中的任何操作都可以先于 B 中的任何操作(前提是这些操作仍然在其自己的线程内按顺序流动)。
因此,如果没有同步,A 可能会在 B 访问它之前或之后更改其值。如果 A 在 B 之前更改,则 B 看到 300;否则,B 看到 200。
关于java - 线程实际上是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12908025/