このクラスでは、forループを10回実行しています。このクラスはRunnableインターフェースを実装します。ここでmain()で2つのスレッドを作成します。これで、両方とも10までループを実行します。しかし、各スレッドのループ数を確認したいと思います。t1が7を超えている場合は、t2を完了するために1秒間スリープさせます。しかし、これを達成する方法は?コードをご覧ください。私は試みましたが、完全に愚かに見えます。スレッドのデータをチェックする方法だけ???
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();
}
}
助けてください