1. package demo2;
  2. import java.util.concurrent.CountDownLatch;
  3. /**
  4. * Created by liudan on 2017/7/27.
  5. */
  6. public class DemoCountDownLatch {
  7. public static void main(String[] args) {
  8. final CountDownLatch countDownLatch = new CountDownLatch(3);
  9. Thread t = new Thread(new Runnable() {
  10. @Override
  11. public void run() {
  12. try {
  13. System.err.print(">登录游戏:...\t");
  14. countDownLatch.await();
  15. System.err.println("----------- 登录成功 SUCCESS-------------");
  16. } catch (InterruptedException e) {
  17. e.printStackTrace();
  18. }
  19. }
  20. },"t");
  21. Thread t1 = new Thread(new Runnable() {
  22. @Override
  23. public void run() {
  24. try {
  25. Thread.sleep(2000);
  26. System.err.print(" 3 ");
  27. countDownLatch.countDown();
  28. } catch (InterruptedException e) {
  29. e.printStackTrace();
  30. }
  31. }
  32. },"t1");
  33. Thread t2 = new Thread(new Runnable() {
  34. @Override
  35. public void run() {
  36. try {
  37. Thread.sleep(3000);
  38. System.err.print(" 2 ");
  39. countDownLatch.countDown();
  40. } catch (InterruptedException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. },"t2");
  45. Thread t3 = new Thread(new Runnable() {
  46. @Override
  47. public void run() {
  48. try {
  49. Thread.sleep(4000);
  50. System.err.println(" 1 ");
  51. countDownLatch.countDown();
  52. } catch (InterruptedException e) {
  53. e.printStackTrace();
  54. }
  55. }
  56. },"t3");
  57. t.start();
  58. t1.start();
  59. t2.start();
  60. t3.start();
  61. }
  62. }
输出:
>登录游戏:... 3 2 1
----------- 登录成功 SUCCESS-------------

11.线程通信CountDownLatch的更多相关文章

  1. 10.线程通信CountDownLatch

    CountDownLatch 1.一个同步的辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个.多个线程去一直等待,用给定的计数.初始化“CountDownLatch”. 由于调用 count ...

  2. Java线程通信

    Java线程通信 螣蛇乘雾,终为土灰. 多个线程协同工作完成某个任务时就会涉及到线程间通信问题.如何使各个线程之间同时执行,顺序执行.交叉执行等. 一.线程同时执行 创建两个线程a和b,两个线程内调用 ...

  3. JAVA基础知识之多线程——线程通信

    传统的线程通信 Object提供了三个方法wait(), notify(), notifyAll()在线程之间进行通信,以此来解决线程间执行顺序等问题. wait():释放当前线程的同步监视控制器,并 ...

  4. 多线程之线程通信条件Condition

    Condition是Locks锁下的还有一种线程通信之间唤醒.堵塞的实现.它以下的await,和signal可以实现Object下的wait,notify和notifyAll的所有功能,除此之外改监视 ...

  5. Linux使用定时器timerfd 和 eventfd接口实现进程线程通信

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  6. Java Thread系列(四)线程通信

    Java Thread系列(四)线程通信 一.传统通信 public static void main(String[] args) { //volatile实现两个线程间数据可见性 private ...

  7. JAVA多线程提高二:传统线程的互斥与同步&传统线程通信机制

    本文主要是回顾线程之间互斥和同步,以及线程之间通信,在最开始没有juc并发包情况下,如何实现的,也就是我们传统的方式如何来实现的,回顾知识是为了后面的提高作准备. 一.线程的互斥 为什么会有线程的互斥 ...

  8. 从微信小程序开发者工具源码看实现原理(三)- - 双线程通信

    文章概览: 引言 小程序开发者工具双线程通信的设计 1.on: 用来收集小程序开发者工具触发的事件回调 2.invoke:以api方式调用开发工具提供的基础能力 3.publish:用来向Appser ...

  9. 第23章 java线程通信——生产者/消费者模型案例

    第23章 java线程通信--生产者/消费者模型案例 1.案例: package com.rocco; /** * 生产者消费者问题,涉及到几个类 * 第一,这个问题本身就是一个类,即主类 * 第二, ...

随机推荐

  1. Linux下进程信息/proc/pid/status的深入分析

    https://blog.csdn.net/beckdon/article/details/48491909

  2. bzoj 4518

    4518 思路: 斜率优化: 代码: #include <cstdio> #include <cstring> #include <iostream> #inclu ...

  3. Windows下 Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow

    Tensorflow 需要 Python 3.5/3.6  64bit 版本: 具体的安装方式可查看:https://www.tensorflow.org/install/install_window ...

  4. python requests库的用法

    参考  http://docs.python-requests.org/zh_CN/latest/user/quickstart.html 1.传递url参数 >>> payload ...

  5. bzoj 1102

    思路:用dfs 会爆栈,巨坑,要用bfs. #include<bits/stdc++.h> #define LL long long #define fi first #define se ...

  6. openstack架构设计(一)

    下图描述了最常见的Openstack集成服务和各服务之间如何交互的逻辑架构. 一. 计算架构 当设计和构建计算结点时,需要考虑处理器,内存.网络.和存储资源等信息.它也是openstack的核心部分. ...

  7. Python之路【第七篇】:常用模块

    一. 模块介绍 1. 什么是模块 在前面的几个章节中我们基本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了. 为此 Python ...

  8. hdu 1158 dp Employment Planning

    Employment Planning Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  9. Hibernate 组合主键映射

    在开发过程中创建数据库表时,有时候会发现单纯的创建一个主键是不可行的,有时候就需要多个字段联合保持唯一,本文讲述如何创建组合主键的映射. 例如:记录一个班的考试成绩.学生跟科目是多对多的关系,只有一个 ...

  10. FFTW3学习笔记2:FFTW(快速傅里叶变换)中文参考

    据说FFTW(Fastest Fourier Transform in the West)是世界上最快的FFT.为了详细了解FFTW以及为编程方便,特将用户手册看了一下,并结合手册制作了以下FFTW中 ...