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());

}

}

}

}

}

主线程和其他线程的执行都是并列的。并没有先后之分。不会以为主线程的消亡,子线程也消亡。除非你设置子线程是主线程的守护线程。一般默认开启一个线程都是非守护线程的。

猜你喜欢

转载自747017186.iteye.com/blog/2151999