我得到了一個採訪,詢問如下問題的領域: -Java線程訪問對象
在Java中,有一個場中的物體,如下面給出的...
public class MyObject
{
int count=0;
public synchronized void m()
{
for(int j=0; j< 1000; j++)
{
System.out.println(Thread.currentThread().getName()+"-> "+j);
count++;
}
System.out.println(Thread.currentThread().getName()+" completed ->"+count);
}
}
這裏,在同步方法中訪問字段「count」,並且該字段未聲明爲易失性。
會有什麼實際的行爲,如果一個線程T1訪問方法米()其被同步,並且使用字段「計數」在其內,同時另一個線程T2嘗試訪問該字段「計數「直接?
對於線程t2,當你說access時,你的意思是隻讀嗎? – Knox
是的,只讀。它會讀取更新後的值還是會出現競態狀況? –