我只是在玩Java中的線程。我有一個實現可運行的類。關於線程的問題
public class MyThread implements Runnable{
private boolean finished;
//Other variables
public void run(){
//Thread code
}
}
我的理解是,類型MyThread的每個線程都有自己的成員變量的副本,並寫入這些成員變量,無需同步。這個假設是否正確?如果正確,訪問什麼需要同步?有人可以關心給大綱或僞代碼。?謝謝。
在這種情況下,所有三個線程(運行x)都看到*相同的*完成字段,所以如果在一個線程中更改了'finished',那麼其他兩個線程是否會看到更改?或者,這是'volatile'關鍵字會改變行爲的例子嗎? – 2010-07-08 07:43:20
@Andreas_D:他們都將使用相同的字段,但沒有易變的修飾符,他們可能看不到對方的變化。 – 2010-07-08 07:49:00
接受。但這是否意味着如果線程在不同的實例上運行,什麼都不需要同步?或者在相同類型的不同實例上運行的線程之間共享什麼? – user378101 2010-07-08 07:52:25