# interrupt

package com.mrzhang.javalearn.bingfa.demo_03;

import java.util.concurrent.TimeUnit;

/**
 * interrupt基本使用(一)
 * <p>
 * 线程曾经的stop、suspend、resume方法已经被废弃了
 * stop等方法执行后,会立即释放锁,导致数据不安全,所以不推荐使用了
 * 目前是通过interrupt方法结合代码自己实现退出
 *
 * @author 91MrZhang on 2020/8/1
 */
public class InterruptDemo01 {

    public void m() {
        while (true) {
            System.out.println("让我们荡起双桨");
            try {
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                System.out.println("收到打断信号,准备撤退");
                e.printStackTrace();
                break;
            }
        }
        System.out.println("结束循环");
    }

    public static void main(String[] args) {
        InterruptDemo01 itd = new InterruptDemo01();
        Thread t1 = new Thread(itd::m);
        t1.start();
        try {
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        t1.interrupt();
    }
}