- 浏览: 38143 次
文章分类
最新评论
1.CountDownLatch简介
CountDownLatch是一个同步辅助类,完成指定线程数量之前,同步等待其他线程完成,个人感觉和计数器差不多。
2.CountDownLatch示例
输出结果:
1.计数器数值为3
2.计数器数值为2
3.计数器数值为4
CountDownLatch是一个同步辅助类,完成指定线程数量之前,同步等待其他线程完成,个人感觉和计数器差不多。
2.CountDownLatch示例
import java.util.concurrent.CountDownLatch; /** * Created by wuhao on 15-12-23. */ public class CountDownLatchDemo { public static void main(String[] args) { //计数器数值为3,工作线程数 CountDownLatch countDownLatch=new CountDownLatch(3); WorkThread workThread1 = new WorkThread(1, 10, "张三", countDownLatch); WorkThread workThread2 = new WorkThread(2, 1, "李四", countDownLatch); WorkThread workThread3 = new WorkThread(3, 4, "王五", countDownLatch); workThread1.start(); workThread2.start(); workThread3.start(); try { countDownLatch.await(); System.out.println("All Thread Complete: "); } catch (InterruptedException e) { System.out.println("countDownLatch.await() Error"); } } } class WorkThread extends Thread{ private int index; private int time; private String name; private CountDownLatch countDownLatch; public WorkThread(int index, int time , String name, CountDownLatch countDownLatch) { this.index = index; this.time = time; this.name = name; this.countDownLatch = countDownLatch; } @Override public void run() { System.out.println("Thread Index: " + index + ", Name: " + name + " Start"); try { Thread.sleep(time * 1000); } catch (InterruptedException e) { System.out.println("Thread.sleep(2000) Error"); } System.out.println("Thread Index: " + index + ", Name: " + name + " End"); countDownLatch.countDown(); //计数器-1 } }
输出结果:
1.计数器数值为3
Thread Index: 1, Name: 张三 Start Thread Index: 2, Name: 李四 Start Thread Index: 3, Name: 王五 Start Thread Index: 2, Name: 李四 End Thread Index: 3, Name: 王五 End Thread Index: 1, Name: 张三 End All Thread Complete: 三个工作线程结束后触发
2.计数器数值为2
Thread Index: 1, Name: 张三 Start Thread Index: 2, Name: 李四 Start Thread Index: 3, Name: 王五 Start Thread Index: 2, Name: 李四 End Thread Index: 3, Name: 王五 End All Thread Complete: Thread Index: 1, Name: 张三 End 两个工作线程结束后触发
3.计数器数值为4
Thread Index: 1, Name: 张三 Start Thread Index: 2, Name: 李四 Start Thread Index: 3, Name: 王五 Start Thread Index: 2, Name: 李四 End Thread Index: 3, Name: 王五 End Thread Index: 1, Name: 张三 End 一直未触发
发表评论
-
JVM内存结构及分析
2017-07-16 19:38 524JVM内存模型 名称特征 ... -
JVM调优实例
2017-06-24 12:30 01.背景:由于最近上线新增业务模块,业务量要增加所以对上线服务 ... -
音视频编码转换-ffmpeg
2016-12-30 18:42 15361.前言 由于最近在做ios与android端需要做a ... -
git did not match any file(s) known to git
2016-04-23 23:49 29491.did not match any file(s) kno ... -
Static工具类线程安全问题
2016-01-08 11:39 22931.静态方法 无论是静态方法还是实例方法,在内存中都只 ... -
JavaThread-ThreadLocal笔记
2015-12-23 14:54 5021.ThreadLocal简介 早在JDK 1.2的版本中就提 ... -
Lambda表达式实现设计模式:命令模式
2015-10-13 09:59 668如何在使用Java 8 Lambda表达式的函数式编程方式时实 ... -
mysql 错误汇总
2015-08-12 16:49 4101.Mysql ERROR 1045 (28000): Acc ... -
Java注解
2015-08-07 11:25 01.@Retention(RetentionPolicy.RU ... -
Base64 编解码 工具类
2015-07-28 22:48 42451.工具类: import java.io.Uns ... -
HttpClient(发送字符串,multipart, 参数等)
2015-07-10 11:12 2031备注:httpclient4.5 发送MultiPart/Pa ... -
转载-搜索引擎实时秒级更新
2015-07-08 14:02 830搜索是很多用户在天 ... -
tomcat-定时任务
2015-03-30 15:27 6061.监听类 import java.util.Timer ... -
JVM-工作原理
2015-03-16 23:26 610一、 JVM的生命周期 1. J ... -
tomcat-启动时启动额外线程并控制线程状态
2015-02-04 18:22 632通过启动线程可以进行后台的操作 1.创建servlet ... -
Exception in thread "main" SoapFault - faultcode: 'soapenv:Server.userException'
2015-01-20 22:32 13471.抛出此类错误大部分都是服务端发布webservice调用出 ... -
Tomcat映射虚拟目录
2015-01-19 22:43 01.设置虚拟目录 <Host>标签</H ... -
android-运行java main方法
2014-12-30 16:10 6771.右键入口类(含有Main方法的)Run Configura ... -
Mybatis 常见错误汇总
2014-12-28 22:31 01.插入数据到数据库是异常 ### Cause: java.s ... -
jsoup
2014-12-17 00:25 01. package com.wuhao.itinfo ...
相关推荐
学习狂神说的juc编程的笔记
尚硅谷周阳老师的juc课程
并发编程代码demo
heima-JUC-资料
juc-1(2).docx
Java 多线程与并发(7_26)-JUC - 类汇总和学习指南
juc尚硅谷
juc-jenkins-2018 JUC Jenkins 2018演示源代码 先决条件 为了运行此演示,必须有一个有效的JDK,git命令以及curl。 克隆存储库 将此存储库克隆到您家中的某个位置: git clone ...
互联网大厂开发高频面试及知识点总结 涉及JUC 包下的并发相关知识梳理 JVM及参数调优案例等
来自B站 遇见狂神说
自己整理的多线程JUC笔记尚硅谷JUC视频笔记整理,很详细和全面,帮你迅速掌握JUC
java.util.concurrent、linux基本操作、NIO(同步、非阻塞)-Channel(通道)、Buffer(缓冲区)、Selector(选择器)
juc-demo JUC包下常用工具练习Demo 内容: 1、Semaphore 2、CountDownLatch 3、CyclicBarrier 4、ReentrantLock + Condition实现阻塞队列 Created by @minghui.y.
juc-learn:juc相关源码的分析以及使用介绍
个人学习的时候对JUC做的笔记,包括所有代码,学习视频是尚硅谷周阳老师的JUC,需要有一定的基础才能看懂,这是个人笔记,不一定适用于所有人,谢谢!
JUC编程笔记-zfs.pdf
主要记录了狂神说Java里JUC那一门课的笔记,主要针对学了狂神的JUC课程的人用来复习的,我记录得还是比较详细,也自己画了不少的图,还根据弹幕大神做了一些修改,对于复习来说应该不成问题,总共有一万多字。
联合会 多线程与高并发
JUC学习笔记 .md
JUC线程高级,