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(); } }
  • 相关阅读:
    数据透视表快速按年月分组
    会计-汇兑损益账务处理
    vs Mvc晋级
    sql语句建立新表SMFIELD
    access左侧导航栏拉窄后,鼠标悬停时无法拉宽。
    SQL函数min和max用法
    转发一个很齐全的gridview应用帖子
    循环
    JavaScript的进阶学习
    JavaScript的学习
  • 原文地址:https://www.cnblogs.com/jay-wu/p/11244438.html
Copyright © 2011-2022 走看看