问题:
启动一个线程t ,要求在main线程中去停止线程t
实现代码如下,具体注释已经在代码中给出哈
public class ThreadExit { public static void main(String[] args) { T t = new T(); t.start(); //如果希望main主线程,去控制t线程的终止,必须修改loop //让t 退出run方法 从而终止t线程 ->通知方式 //让主线程休眠10秒,再通知t1线程退出 System.out.println("main线程休眠10s..."); try { Thread.sleep(10 * 1000); } catch (InterruptedException e) { e.printStackTrace(); } t.setLoop(false); } } class T extends Thread { private int count = 0; //设置一个控制变量 private boolean loop = true; @Override public void run() { while (loop) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("T 运行中" + (++count)); } } public void setLoop(boolean loop) { this.loop = loop; } }
运行结果: