使用线程自己join自己完成线程门栓

2022-05-11 11:43:08 浏览数 (1)

代码语言:javascript复制
public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                //这里可以放一个变量看看是否是0,只有1和0两种状态,当为0时,才可以进行后续代码,如果为1,直接自己join自己等待别的线程把该变量原子性减一后再去interrupt它,这也是一种门栓的实现,或者说是一种阻塞的实现
                    Thread.currentThread().join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                    //抓到异常后 可以在这里写后续代码
                }
            }
        });
        thread.start();
        thread.interrupt();//主线程去打断他,打断他之前要将那个原子性变量减一
    }

0 人点赞