[Java]stop()不能用,如何停止线程?

来源:互联网 发布:昆明暴恐 中国公知 编辑:程序博客网 时间:2024/06/05 01:29
/*线程的生命周期===================================================新的线程-----------> 运行) ---------> 销毁new Thread()start()stop()或run()执行完成在运行中,可能会:礼让yield()下面三个方法不建议使用,定义时使用了Deprecated(不赞成)声明,会产生死锁:suspend():暂时挂起线程resume():恢复挂起的线程stop():停止线程deprecated 美 ['dɛprə,ketɪd]v. 不赞成;弃用;不宜用(deprecate的过去式及过去分词形式)那么停止线程该如何去做?通过设置标志位来做:*/class MyThread implements Runnable{private boolean flag = true ;// 定义标志位public void run(){int i = 0 ;while(this.flag){System.out.println(Thread.currentThread().getName()+"运行,i = " + (i++)) ;}}public void stop(){this.flag = false ;// 修改标志位,标志位一改变,循环会立即停止}};public class StopDemo{public static void main(String args[]){MyThread my = new MyThread() ;Thread t = new Thread(my,"线程") ;// 建立线程对象t.start() ;// 启动线程try{Thread.sleep(30) ;//启动后延迟,为了看清}catch(Exception e){}my.stop() ;// 修改标志位,停止运行}};/*线程运行,i = 0线程运行,i = 1线程运行,i = 2...线程会自动停止.*/

 
原创粉丝点击