Java 多线程结束 的第二种方法 interrupt方法

来源:互联网 发布:linux 启动挂载 编辑:程序博客网 时间:2024/06/05 08:46
/*停止线程:1 stop 方法。2 run 方法结束怎么控制线程的任务结束?任务中都会有循环结构(没有循环就不需要多线程了,开多线程就是怕这里循环影响其他),只要控制住循环就可以结束任务控制循环通常就用定义标记来完成如果线程处于了冻结状态 就无法读取标记 如何结束?可以使用interrupt()方法将线程从冻结状态强制恢复到运行状态中来,让线程具有cpu的执行资格但强制动作会发生InterruptedException 记得要处理*/class StopThread implements Runnable{private boolean flag=true;public void run(){while(flag){try{wait();}catch(InterruptedException e){System.out.println(Thread.currentThread().getName()+"...."+e);}System.out.println(Thread.currentThread().getName()+"....");}}public void setFlag(){flag=false;}}class StopThreadDemo2{public static void main(String[] args) {StopThread st=new StopThread();Thread t1=new Thread(st);Thread t2=new Thread(st);t1.start();t2.start();int num=1;for(;;){if(++num==50){//st.setFlag();//此处将标记变为false 停止线程 t1.interrupt();t2.interrupt();break;}System.out.println("main..."+num);}}}

原创粉丝点击