/*线程的生命周期=================================================== 新的线程-----------> 运行) ---------> 销毁 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 ... 线程会自动停止. */
[Java]stop()不能用,如何停止线程?
最新推荐文章于 2023-03-10 10:09:00 发布