我阅读了以下程序并在博客中回答.
int x = 0;
boolean bExit = false;
Run Code Online (Sandbox Code Playgroud)
线程1(未同步)
x = 1;
bExit = true;
Run Code Online (Sandbox Code Playgroud)
线程2(未同步)
if (bExit == true)
System.out.println("x=" + x);
Run Code Online (Sandbox Code Playgroud)
线程2是否可以打印" x=0"?
Ans:是(原因:每个线程都有自己的变量副本.)
你怎么解决它?
Ans:通过使用make两个线程在一个公共互斥锁上同步或使两个变量都是volatile.
我的疑问是:如果我们将2变量设置为volatile,那么2个线程将共享来自主存储器的变量.这是有道理的,但是在同步的情况下如何解决它,因为线程都有自己的变量副本.
请帮我.