博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 并发编程实战 闭锁 (书上原文)
阅读量:6221 次
发布时间:2019-06-21

本文共 1178 字,大约阅读时间需要 3 分钟。

clipboard.png

使主线程高效地等待直到所有工作线程都执行完成,因此可以统计所消耗的时间。

/** * TestHarness * 

* Using CountDownLatch for starting and stopping threads in timing tests * * @author Brian Goetz and Tim Peierls */public class TestHarness { public long timeTasks(int nThreads, final Runnable task) throws InterruptedException { final CountDownLatch startGate = new CountDownLatch(1); final CountDownLatch endGate = new CountDownLatch(nThreads); for (int i = 0; i < nThreads; i++) { Thread t = new Thread() { public void run() { try { startGate.await(); try { task.run(); } finally { endGate.countDown(); } } catch (InterruptedException ignored) { } } }; t.start(); } long start = System.nanoTime(); startGate.countDown(); endGate.await(); long end = System.nanoTime(); return end - start; }}

startGate.countDown() ,准备工作完成后,使所有工作线程开始工作;

endGate.await() 使所有工作线程都执行完后,执行下面的代码。

转载地址:http://ukgja.baihongyu.com/

你可能感兴趣的文章
url查重--bloom过滤器
查看>>
django
查看>>
vs plug
查看>>
Jquery的冒泡事件的阻止与允许
查看>>
实践是检验真理的唯一标准 - 脱壳篇02
查看>>
8.JSP与JavaBean
查看>>
strace命令详解
查看>>
javaweb 路径问题
查看>>
xgboost算法教程(两种使用方法)
查看>>
在Android Studio上测试运行,Unity发布成Android包过程中所遇到的问题及解决方案...
查看>>
设置UIImage的渲染模式:UIImage.renderingMode
查看>>
ajax最常见的几种面试题
查看>>
横向文本框 index获取索引 和 eq 实现
查看>>
学习 WINDOWS8 的开发 Windows Metro Style Apps !
查看>>
linux中添加环境变量(python为例)
查看>>
会话断开数据保存情况
查看>>
Linux-JDK+Tomcat的安装笔记
查看>>
吴忠军百度百科
查看>>
ActiveRecord::ConnectionAdapters::SchemaStatements | 有关 Column 的常见方法笔记
查看>>
搭建ssm框架经验
查看>>