我有一個匿名類,它從集合中獲取迭代值,如下所示。通過這段代碼,是否在匿名類中保留了直接變量in
?或不同的線程可以採取相同的in
值?匿名類中的最終變量
List<Integer> list = new ArrayList<>();
for (int i = 1; i <= 20; i++)
list.add(i);
for (final Integer in : list) {
new Thread(new Runnable() {
@Override
public void run() {
Thread.sleep(1000);
System.out.println(value + "," + in);
}
}).start();
}
我不明白你在問什麼。在這種情況下,你爲每個20個線程傳遞一個不同的'in'值。那是你想知道的嗎? – 2014-11-06 23:02:01
我的問題是兩個線程可以共享相同的值嗎? – vinayag 2014-11-06 23:04:48
另外我認爲迭代集合上的迭代隱式轉換爲循環的正常循環,其中包含相同的變量。所以我很困惑,每次迭代集合時是否都會創建一個新的'in'變量。 – vinayag 2014-11-06 23:06:52