我有一个类,在其中运行了一个for循环10次,这个类实现了Runnable接口。现在在main()中我创建了两个线程。现在两个线程都会运行循环直到10次。但是我想检查每个线程的循环计数。如果t1已经超过7,那么让它睡眠1秒钟,以便让t2完成。但如何实现这一点?请看代码。我尝试了,但看起来完全愚蠢。如何检查线程的数据?
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();
}
}
请帮忙
i
,2)在需要忙等待的情况下使用了if
而不是while
,3)延迟主线程而不是目标线程。请先阅读有关线程的更多信息,然后再尝试,因为这里有太多错误了。 - Erik