latch.await();生效的三种方法

1.中断主线程使await()生效

package com.dwz.utils;

import java.util.concurrent.CountDownLatch;
/**
 *     中断主线程使await()生效
 */
public class CountDownLatchExample4 {
    public static void main(String[] args) throws InterruptedException {
        final CountDownLatch latch = new CountDownLatch(1);
        final Thread mainThread = Thread.currentThread(); 
        
        new Thread() {
            public void run() {
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                mainThread.interrupt();
            };
        }.start();
        
        latch.await();
        System.out.println("==================");
    }
}

2.latch减为0使得await()生效

package com.dwz.utils;

import java.util.concurrent.CountDownLatch;
/**
 *    latch减为0使得await()生效
 */
public class CountDownLatchExample3 {
    public static void main(String[] args) throws InterruptedException {
        final CountDownLatch latch = new CountDownLatch(1);
        
        new Thread() {
            public void run() {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                latch.countDown();
            };
        }.start();
        
        latch.await();
        System.out.println("==================");
    }
}

3.CountDownLatch.await(long timeout, TimeUnit unit)设置时间自动结束

package com.dwz.utils;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
/**
 *    CountDownLatch.await(long timeout, TimeUnit unit)设置时间自动结束
 */
public class CountDownLatchExample5 {
    public static void main(String[] args) throws InterruptedException {
        final CountDownLatch latch = new CountDownLatch(1);
        
        new Thread() {
            public void run() {
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                latch.countDown();
            };
        }.start();
        
        latch.await(1000, TimeUnit.MILLISECONDS);
        System.out.println("==================");
    }
}

 

posted @ 2020-06-30 15:46  龙宇在天  阅读(7827)  评论(0编辑  收藏  举报
//右侧添加目录 //增加页面点击显示24字社会主义核心价值观