说明
1、使用自定义的全局变量终止线程。终止方法比较温柔,在拿到终止指令后,需要执行完当前的任务才会终止线程。
使用全局变量方式“终止说话”后又有一次“正在说话”。
2、全局变量控制线程终止会让当前任务结束后再进行终止。
实例
public class ThreadDemo { // 全局自定义变量 private static boolean flag = false; public static void main(String[] args) throws InterruptedException { // 转账线程 Thread t1 = new Thread(new Runnable() { @Override public void run() { while (!flag) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("正在讲话..."); } System.out.println("停止说话"); } }); t1.start(); Thread t2 = new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(310); } catch (InterruptedException e) { e.printStackTrace(); } // 改变变量的值来终止线程 System.out.println("停止说话,有要事发生。"); flag = true; } }); t2.start(); t1.join(); //对于用户线程而言,join()可以不写 t2.join(); } }
本教程操作环境:windows7系统、java10版,DELL G3电脑。