我想同時運行兩個不同運行方法的線程。可能嗎?我在下面有簡單的代碼,但它們不兼容。我只想每5秒運行第一個線程,並且總是運行第二個線程。兩個線程不同運行方法並行工作
public static int x = 0;
public static void main(String[] args) throws InterruptedException{
Runnable r1 = new Runnable() {
public void run() {
x = x + 1;
System.out.println("increment x");
}
};
Runnable r2 = new Runnable() {
public void run() {
System.out.println("x is "+x);
}
};
while(true){
Thread t1 = new Thread(r1);
Thread t2 = new Thread(r2);
t1.start();
t2.start();
t1.sleep(5000);
}
}
a)您不應該無限循環地開始運行已經線程。 b)您不會同步對x的訪問。 c)併發控制檯輸出會導致問題。 – deviantfan
3)Thread.sleep()是靜態的,可以讓* current *線程,而不是被引用線程sleep(與靜態方法一樣,沒有這種東西) –