zoukankan      html  css  js  c++  java
  • CountDownLatch 部分加载和同时并发业务。

    按顺序部分加载:

    import java.util.concurrent.CountDownLatch;
    
    /**
     * @Title: ThreadCountDownTest.java
     * @Description:
     * @author: wuwenjie
     * @date: 2019.07.17 16:43
     * 
     */
    public class ThreadCountDownTest {
    
        public static void main(String[] args) {
    // 初始化闭锁,并设置资源个数
            CountDownLatch latch = new CountDownLatch(2);
    
            Thread t1 =new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                //加载1 latch.countDown(); System.out.println(
    111); } catch (InterruptedException e) { e.printStackTrace(); } } });
    Thread t2
    = new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(12000);
                //加载2 latch.countDown(); System.out.println(
    222); } catch (InterruptedException e) { e.printStackTrace(); } } }); Thread t3 = new Thread(new Runnable() { @Override public void run() { try {
                 latch.await();
                 //加载完成业务使用 System.out.println(
    333); } catch (InterruptedException e) { e.printStackTrace(); } } }); t1.start(); t2.start(); t3.start(); } }

    2.同时业务并发处

    import java.util.concurrent.CountDownLatch;
    
    public class ThreadCountDownTest {
    
        public static void main(String[] args) {
    // 初始化闭锁,并设置资源个数
            CountDownLatch latch = new CountDownLatch(2);
    
            Thread t1 =new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                        latch.countDown();
                //等待所有执行完,并发 latch.await();
    System.out.println(
    111); } catch (InterruptedException e) { e.printStackTrace(); } } }); Thread t2 = new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(12000); latch.countDown(); latch.await(); System.out.println(222); } catch (InterruptedException e) { e.printStackTrace(); } } }); Thread t3 = new Thread(new Runnable() { @Override public void run() { try { latch.await(); System.out.println(333); } catch (InterruptedException e) { e.printStackTrace(); } } }); t1.start(); t2.start(); t3.start(); } }
  • 相关阅读:
    天使投资人如何评估创业公司价值
    web报表工具finereport常用函数的用法总结(数组函数)
    采用UltraISO制作U盘启动盘
    web报表工具FineReport常用函数的用法总结(报表函数)
    web报表工具FineReport使用中遇到的常见报错及解决办法(三)
    Dll的编写 在unity中加载
    Unity 实现模拟按键
    web报表工具FineReport最经常用到部分函数详解
    Unity UGUI
    带有天气预报的高大上web报表制作分享
  • 原文地址:https://www.cnblogs.com/jay-wu/p/11244438.html
Copyright © 2011-2022 走看看