一个多线程例子,使用CountDownLatch
来源:互联网 发布:spark mac 安装 编辑:程序博客网 时间:2024/05/16 14:21
package com.test;import java.util.Date;import java.util.concurrent.CountDownLatch;public class TaskTool { /** * 主程序 * * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // 执行函数 ExecFunc(); } /* * 需要执行的函数 */ private static void ExecFunc() { try { debug("主线程开始时间 = " + new Date()); // 主线程睡眠2秒种,防止CPU资源被耗尽 Thread.sleep(2000); int countDown = 1000;// 初始化countDown,几行数据就代表有几个线程 CountDownLatch threadsignalCountDownLatch = new CountDownLatch(countDown); for (int i = 0; i < countDown; i++) { // 执行线程 TimeingThread timeingThread = new TimeingThread(threadsignalCountDownLatch); // 线程加入等待 timeingThread.start(); } // 等待子线程结束,开始主线程 threadsignalCountDownLatch.await(); debug("主线程结束时间 = " + new Date()); } catch (Exception e) { debug("系统异常 = " + e.getMessage()); } } /** * 定制执行的内部类 * * @author admin * */ private static class TimeingThread extends Thread { // 线程计数器 private CountDownLatch threadsSignal; // 构造方法 public TimeingThread(CountDownLatch threadsSignal) { this.threadsSignal = threadsSignal; } // 执行线程 public void run() { StartFuncJob(); threadsSignal.countDown(); } /** * 开始执行定时任务 */ private void StartFuncJob() { try { for (int i = 0; i < 3; i++) { debug(Thread.currentThread().getName() + " ------------数数 ==" + i); Thread.sleep(1000); } debug(Thread.currentThread().getName() + " ------------数完了-----------------------------------------"); } catch (Exception ex) { } finally { // 计数器减少1 threadsSignal.countDown(); } } } public static void debug(Object obj) { System.out.println(obj); } public static void debug() { System.out.println(); }}
阅读全文
0 0
- 一个多线程例子,使用CountDownLatch
- 一个例子学会CountDownLatch
- CountDownLatch 使用例子
- CountDownLatch的使用例子
- Java多线程CountDownLatch的使用
- QThread使用的一个例子----多线程
- java CountDownLatch很简单的使用例子
- Java多线程之~~~使用CountDownLatch来同步多个线程实现一个任务
- Android中使用CountDownLatch并发多线程操作
- Android中使用CountDownLatch并发多线程操作
- Java中使用CountDownLatch进行多线程同步
- Java多线程之CountDownLatch的使用
- 多线程-CountDownLatch
- 多线程-CountDownLatch
- 多线程 countDownLatch
- 多线程的一个例子
- 一个多线程例子
- 多线程的一个例子
- 单个圆角的设置
- java算法之最大子阵列
- ORACLE SCOTT 解锁 并修改密码
- 22
- The import javax.servlet cannot be resolved
- 一个多线程例子,使用CountDownLatch
- 如何在cmd java main方法 传入含有中文的参数乱码问题解决
- python: set函数
- iOS App的加固保护原理
- 8大排序算法
- linux下查看所有用户及所有用户组
- JAVA实现微信App支付(二)
- 「MICCAI 2017」Reading Notes
- 无效的DNS配置,导致防火墙服务启动失败