java服务器学习之一 java 多线程 CountDownLatch用法
来源:互联网 发布:雅虎股票数据 编辑:程序博客网 时间:2024/06/05 09:28
CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
主要方法
public CountDownLatch(int count);
public void countDown();
public void await() throws InterruptedException
构造方法参数指定了计数的次数
countDown方法,当前线程调用此方法,则计数减一
awaint方法,调用此方法会一直阻塞当前线程,直到计时器的值为0
public class CountDownLatchDemo {final static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static void main(String[] args) throws InterruptedException { CountDownLatch latch=new CountDownLatch(2);//两个工人的协作 Worker worker1=new Worker("zhang san", 5000, latch); Worker worker2=new Worker("li si", 8000, latch); worker1.start();// worker2.start();// latch.await();//等待所有工人完成工作 System.out.println("all work done at "+sdf.format(new Date()));} static class Worker extends Thread{ String workerName; int workTime; CountDownLatch latch; public Worker(String workerName ,int workTime ,CountDownLatch latch){ this.workerName=workerName; this.workTime=workTime; this.latch=latch; } public void run(){ System.out.println("Worker "+workerName+" do work begin at "+sdf.format(new Date())); doWork();//工作了 System.out.println("Worker "+workerName+" do work complete at "+sdf.format(new Date())); latch.countDown();//工人完成工作,计数器减一 } private void doWork(){ try {Thread.sleep(workTime);} catch (InterruptedException e) {e.printStackTrace();} } } }
0 0
- java服务器学习之一 java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- [置顶] 整理一些代码__xu_init.js 作为自己项目开发时使用
- [置顶] 强人搞的demo: javascript写的操作系统(OS)
- 百度+搜狗编程题
- 设计模式:单例模式
- [置顶] FleaPHP中:使用 PATHINFO 和 URL 重写 真是太简单了
- java服务器学习之一 java 多线程 CountDownLatch用法
- [置顶] TinyTable中文排序的解决 -- 构建可移动,拖拉,排序,编辑的 Table组件[不到5K,可单独使用]
- java 升序 逆序 前移 后移
- [置顶] 最完整的 Rails Windows 开发环境搭建 手记
- 洛谷 P1305 新二叉树
- [置顶] 关于初学Rails 开发我想说的 ....
- Java设计模式之四
- 移动端开发不缩放
- [置顶] 增强型的FLEA_Db_TableDataGateway,提供按字段名称操作的功能