在下面的類中,我使用了一個singleThreadScheduledExecutor。我的問題是,我是否需要同時訪問dummyInt和dummyBoolean?這是否需要同步?
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class Playground {
/**
* @param args
*/
public static void main(String[] args) {
startThread();
}
private static void startThread() {
ScheduledExecutorService timer = Executors
.newSingleThreadScheduledExecutor();
Runnable r = new Runnable() {
int dummyInt = 0;
boolean dummyBoolean = false;
@Override
public void run() {
dummyInt = dummyInt + 1;
if (dummyBoolean) {
dummyBoolean= false;
} else {
dummyBoolean= true;
}
}
};
timer.scheduleAtFixedRate(r, 0, 100, TimeUnit.MILLISECONDS);
}
}
我知道它是3個單獨的操作。我甚至問過這個問題的原因是因爲我使用的是「singleThreadedExecutor」,因此我認爲可能不需要同步。 – systemoutprintln 2010-03-07 17:05:50
不,每個線程都會得到自己的Runnable子類的實例。 – Pointy 2010-03-07 17:06:36