您的位置:首页 > 编程语言 > Java开发

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

2017-10-15 20:29 316 查看
/*线程的生命周期===================================================新的线程-----------> 运行) ---------> 销毁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...线程会自动停止.*/

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: