Jj *_*beo 0 java multithreading flow
例如,我有一个非同步的方法,如下所示:
public void nonSynchronized(){
boolean flag = false;
if(/*some condition*/){
flag = true;
}
//more line of codes here
if(flag == true){
//do something here - let's say line 33.
}
}
Run Code Online (Sandbox Code Playgroud)
如果第一个线程执行该方法然后设置flag为true,并且在执行第33行之前另一个线程执行该方法然后将该变量重置flag为false,第一个线程是否仍然执行第33行,该怎么办?
你flag是一个局部变量.每个线程在堆栈上获得自己的副本.它们根本不会干扰彼此.这只能发生在共享状态,即堆上的东西,即对象的字段.
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |