一个简单的闭锁例子
2014-05-27 23:00
204 查看
import java.util.concurrent.CountDownLatch; public class TestHarness { public static void main(String[] args) throws InterruptedException { MyTask task = new MyTask(); System.out.println(timeTasks(2, task)); } public static 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 e) { // TODO: handle exception } } }; t.start(); } long start = System.nanoTime(); startGate.countDown(); endGate.await(); long end = System.nanoTime(); return end - start; } } class MyTask implements Runnable { @Override public void run() { System.out.println(Thread.currentThread()); } }
相关文章推荐
- 今天的问题:一个简单的例子,请帮我解开“接口实现Java‘隐藏实现细目’”的迷惑。
- SYBASE ASE 12.0 上一个横表转纵表的简单例子
- [导入]一个简单的用JS调用WebService的例子
- 一个简单的tcp filter的例子
- 一个简单的例子说明Struts的工作流程
- 一个简单的以太网广播收发例子
- C++ Boost 之Python(一个简单的例子)
- 一个简单的用JS调用WebService的例子
- 一个简单的IoC例子(抄袭)
- 用PHP开发GUI(一个简单的例子)
- [Struts]学习日记1 - 一个简单的例子
- web.config文件自定义配置节的使用方法的一个简单例子
- 一个简单的XML Schema的例子
- Struts 教程I:一个用jbuilder X 做的最简单的helloworld的struts例子
- 【转】一个用Visual C#做组件的简单例子
- 蛙蛙推荐: 用web服务传递Dataset的一个简单例子
- 一个在程序中实现plugin机制的简单例子
- 一个简单的Eclipse插件开发的例子——HelloWorld【转载】
- 软件开发中的矛盾——一个简单的例子
- Spring 入门(一个简单的例子)