package newpackage;
import java.util.logging.Level;
import java.util.logging.Logger;
class test {
public int in = 0;
void helper() {
Thread t1 = new Thread(
()
-> {
add();
}
);
Thread t2 = new Thread(
()
-> {
add();
}
);
t1.start();
t2.start();
try {
t1.join();
t2.join();
} catch (InterruptedException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
}
}
void add() {
for (int i = 0; i < 40; i++) {
in += i;
try {
Thread.sleep(50);
} catch (InterruptedException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
public class Main {
public static void main(String[] args) {
test a = new test();
a.helper();
System.out.println(a.in);
}
}
我想要的是從不同線程同時運行同一個方法。java中的多線程方法
但是上面給出的代碼沒有給出正確的結果,它給出的輸出小於1560(780 + 780)。我該如何實現這一點?
在此先感謝。
重新獲得「正確的結果」,您的期望輸出是什麼,以及您觀察到的輸出是什麼?此外,你的方法什麼都不做 - 請發佈真實的代碼,我們可以編譯,測試和修改的代碼。 –
「沒有給出正確的結果」我認爲你的意思是它沒有給出你期望的結果,因爲它絕對符合Java規範所說的。你認爲它應該做什麼,它做了什麼呢? –
@AndyTurner對不起。爲了簡單起見,我這樣做了。現在編輯。 –