终止线程的优选并不是stop()与destroy()

网友投稿 690 2022-11-05

终止线程的优选并不是stop()与destroy()

终止线程的优选并不是stop()与destroy()

如果我们想在一个线程中终止另一个线程我们一般不使用 JDK 提供的 stop()/destroy() 方法(它们本身也被 JDK 废弃了)。通常的做法是提供一个 boolean 型的终止变量,当这个 变量值为 false 时,则终止线程的运行

package com.yqq.app12;import java.io.IOException;/** * @Author yqq * @Date 2021/11/24 01:23 * @Version 1.0 */public class StopThread implements Runnable{ private boolean flag = true; @Override public void run() { System.out.println(Thread.currentThread().getName()+"线程开始"); int i = 0; while (flag){ System.out.println(Thread.currentThread().getName()+" "+i++); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println(Thread.currentThread().getName()+"线程结束"); } public void stop(){ this.flag = false; } public static void main(String[] args) throws IOException { System.out.println("主线程开始"); StopThread st = new StopThread(); Thread t1 = new Thread(st); t1.start(); System.in.read(); st.stop(); System.out.println("主线程结束"); }}

主线程开始Thread-0线程开始Thread-0 0Thread-0 1Thread-0 2Thread-0 3Thread-0 4Thread-0 5o主线程结束Thread-0线程结束

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:sleep与yield的区别
下一篇:Softlearning是一个强化学习框架,用于训练连续域中的最大熵策略
相关文章

 发表评论

暂时没有评论,来抢沙发吧~