java 线程激活跟终止,主线程和子线程之间的关系
public static void main(String[] args) throws Exception {
MyThread mt1=new MyThread();
System.out.println(Thread.currentThread().getName());
Thread thread1=new Thread(mt1,"我是1线程");//同一个mt,但是在Thread中就不可以,如果用同一
Thread thread2=new Thread(mt1,"我是2线程");//同一个mt,但是在Thread中就不可以,如果用同一
Thread thread3=new Thread(mt1,"我是3线程");//同一个mt,但是在Thread中就不可以,如果用同一
thread1.start();
thread2.start();
thread3.start();
System.out.println("是否激活:"+Thread.currentThread().isAlive());
Thread.currentThread().sleep(5000);
System.out.println("还能执行到我?");
}
}
class MyThread implements Runnable{
private int ticket=10;
private boolean flag=true;
public void run(){
for(int i=0;i<20;i++){
if(this.ticket>0){
if(Thread.currentThread().getName().equals("我是1线程")){//判断如果是线程1
if(flag){//如果是true,线程的终止
System.out.println("卖票:ticket"+this.ticket--+"--->"+Thread.currentThread().getName());
System.out.println(flag);
flag=false;
}
}else{
System.out.println("卖票:ticket"+this.ticket--+"--->"+Thread.currentThread().getName());
}
}
}
}
}
主线程和其他线程的执行都是并列的。并没有先后之分。不会以为主线程的消亡,子线程也消亡。除非你设置子线程是主线程的守护线程。一般默认开启一个线程都是非守护线程的。