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();
}
}
CountDownLatch 部分加载和同时并发业务。的更多相关文章
- js实现『加载更多』功能实例
DEMO : 滚动加载示例 关于如何实现『加载更多』功能,网上有插件可用,例如比较著名的使用iscroll.js实现的上拉加载更多.下拉刷新功能. 但实际用起来却是很麻烦.由于是第三方插件,要按照对方 ...
- 高效使用Bitmaps(二) 后台加载Bitmap
转载:http://my.oschina.net/rengwuxian/blog/183802 为什么要在后台加载Bitmap? 有没有过这种体验:你在Android手机上打开了一个带有含图片的Lis ...
- 27 Java动态加载第三方jar包中的类
我加载的方法是://参数fileName是jar包的路径,processorName 是业务类的包名+类名public static A load(String fileName, String pr ...
- js同步、异步、延时、无阻塞加载
一.同步加载 平常默认用的都是同步加载.如:<script src="http://yourdomain.com/script.js"></script> ...
- 加载rocksdb实例报错:java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\librocksdbjni3696928169151614297.dll
项目的缓存中用到了rocksdb,实例化时报错了: Related cause: org.springframework.beans.factory.BeanCreationException: Er ...
- 反射01 Class类的使用、动态加载类、类类型说明、获取类的信息
0 Java反射机制 反射(Reflection)是 Java 的高级特性之一,是框架实现的基础. 0.1 定义 Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对 ...
- liteos分散加载(十四)
1. 概述 1.1 基本概念 分散加载是一种实现特定代码快速启动的技术,通过优先加载特定代码到内存,达到缩短从系统开机到特定代码执行的时间.可被应用来实现关键业务的快速启动. 嵌入式系统通过uboot ...
- 前端性能优化 css和js的加载与执行
一个网站在浏览器端是如何进行渲染的? html本身首先会被渲染成 DOM 树,实际上 html 是最先通过网址请求过来的,请求过来之后,html 本身会由一个字节流转化成一个字符流,浏览器端拿的就是字 ...
- Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
继续并发专题~ FutureTask 有点类似Runnable,都可以通过Thread来启动,不过FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞. 由于:Fu ...
随机推荐
- HDU 4193
本题思路:用sum[]数组维护前缀和, 当然这里需要把原数组扩大为原来的两倍. 然后对于任意一个长度为n的区间 k.....k+n-1,如果有该区间内的最小值大于等于sum[k-1]那么该种情况就符合 ...
- 用预编译包安装zabbix-agent
如果主机无法上网,安装rpm又缺少依赖时,可以通过预编译包进行安装zabbix-agent,下载地址 https://www.zabbix.com/download 下载后,执行如下命令: wget ...
- oracle连接命令
(1)conn[ect] 用法:conn 用户名/密码@网络服务器名 [as sysdba/sysoper] 当用特权用户身份连接时,必须带上as sysdba或是as sysoper 该命令常用 ...
- vmware中配置CentOS
一.下载 http://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso 这里选择的是阿里云镜像 ...
- Docker镜像部分详解
拉取镜像: docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] Docker 镜像仓库地址:地址的格式一般是 [:端口号].默认地址是 Docke ...
- WPF Binding ElementName方式无效的解决方法--x:Reference绑定
原文:WPF Binding ElementName方式无效的解决方法--x:Reference绑定 需求: 背景:Grid的有一个TextBlock name:T1和一个ListBox,ListBo ...
- @codeforces - 1056G@ Take Metro
目录 @description@ @solution@ @accepted code@ @details@ @description@ 环上有 n 个点,按顺时针顺序以 1 到 n 编号.其中 1~m ...
- js+canvas黑白棋
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 模板—K-D-tree(P2479 [SDOI2010]捉迷藏)
#include<algorithm> #include<iostream> #include<cstdio> #include<cmath> #def ...
- 字符串编辑距离(Edit Distance)
一.问题描述定义字符串编辑距离(Edit Distance),是俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出的概念,又称 Levenshtein 距离,是指两个字符串之 ...