判断是否在运行用isAlive方法哈。。
给你写了个例子。。不知是不是你想要的。。
public class Thread100 {
/**
* @param args
*/
public static ThreadA ta = new ThreadA();
public static ThreadB tb = new ThreadB();
public static void main(String[] args) {
ta.start();
tb.start();
}
}
class ThreadA extends Thread {
@Override
public void run() {
int i = 0;
while(i < 100) {
if(Thread100.tb.isAlive()) {
System.out.println("B is alive");
}
System.out.println(i);
i++;
}
}
}
class ThreadB extends Thread {
@Override
public void run() {
int i = 0;
while(i < 100) {
if(Thread100.ta.isAlive()) {
System.out.println("A is alive");
}
System.out.println(i);
i++;
}
}
}
isAlive() 测试线程是否处于活动状态。
isInterrupted()测试线程是否已经中断。
哥们儿,以后看问题先自己试着解决,实在不行了再到网上求助,这样更有助于提高自己!
如果出现死锁了,那2个线程就都阻塞了,就无法判断了。
一般情况下,某一时刻只有一个线程在运行,在线程调度器的调度下,线程们轮换地执行,交替地占用CPU时间片。在双核的时候,是可以在某一时刻有2个线程同时运行的。
因此,个人感觉你提出的问题不太实际。