我有這個類在其中運行for循環10次。該類實現Runnable接口。現在在main()中創建2個線程。現在兩者都會運行循環直到10.但是我想檢查每個線程的循環次數。如果t1已經過了7,那麼讓它睡1秒,讓t2完成。但如何實現這一目標?請參閱代碼。我嘗試過,但看起來完全愚蠢。只是如何檢查一個線程的數據?如何在JAVA中減慢線程
class SimpleJob implements Runnable {
int i;
public void run(){
for(i=0; i<10; i++){
System.out.println(Thread.currentThread().getName()+" Running ");
}
}
public int getCount(){
return i;
}
}
public class Threadings {
public static void main(String [] args){
SimpleJob sj = new SimpleJob();
Thread t1 = new Thread(sj);
Thread t2 = new Thread(sj);
t1.setName("T1");
t2.setName("T2");
t1.start();
try{
if(sj.getCount() > 8){ // I know this looks totally ridiculous, but then how to check variable i being incremented by each thread??
System.out.println("Here");
Thread.sleep(2000);
}
}catch(Exception e){
System.out.println(e);
}
t2.start();
}
}
請幫
是不是有一種方法來確定哪個線程在給定時刻正在運行代碼?如果是這樣,那麼可以使用if語句來增加每個線程的值。 – BlackVegetable
Sooo很多問題。爲什麼你甚至想要在多個線程中執行SAME作業?爲什麼你想要「減慢」一個計算。你試圖解決的問題還不清楚,也許如果你解釋你想達到的目標,你可以得到更好的答案。 – Jochen
@blackVegetable:對不起,我是java中的新手。恐怕我不明白你的意思:( – Shades88