【java】java线程并发测试模版
2016-04-13 13:39
429 查看
这里申请了1000个线程,并且执行1000次任务。当所有任务完成后,main退出。
如果要实现真正的并发同时执行,可通过CyclicBarrier来控制。
转自 http://flysnowxf.iteye.com/blog/1188496
public class Test { public static void main(String[] args) { int count = 1000; ExecutorService executorService = Executors.newFixedThreadPool(count); for (int i = 0; i < count; i++) executorService.execute(new Test().new Task()); executorService.shutdown(); while (!executorService.isTerminated()) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } } public class Task implements Runnable { @Override public void run() { try { // 测试内容 } catch (Exception e) { e.printStackTrace(); } } } }
如果要实现真正的并发同时执行,可通过CyclicBarrier来控制。
public class Test { public static void main(String[] args) { int count = 1000; CyclicBarrier cyclicBarrier = new CyclicBarrier(count); ExecutorService executorService = Executors.newFixedThreadPool(count); for (int i = 0; i < count; i++) executorService.execute(new Test().new Task(cyclicBarrier)); executorService.shutdown(); while (!executorService.isTerminated()) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } } public class Task implements Runnable { private CyclicBarrier cyclicBarrier; public Task(CyclicBarrier cyclicBarrier) { this.cyclicBarrier = cyclicBarrier; } @Override public void run() { try { // 等待所有任务准备就绪 cyclicBarrier.await(); // 测试内容 } catch (Exception e) { e.printStackTrace(); } } } }
转自 http://flysnowxf.iteye.com/blog/1188496
相关文章推荐
- java 获取硬件信息
- Cordova 核心java类说明
- 【深入Java虚拟机】之四:类加载机制 | Java虚拟机
- java volatile 探究
- java实现简单的素数判断
- Eclipse设置、调优、使用
- Eclipse经常使用的快捷键
- Java String 源码浅析 JDK1.7
- Eclipse 下maven 笔记
- 关于java中文件下载中文乱码的事
- MyBatis异常 Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException:
- 多线程(1)-概念与原理
- 面向对象方式解决比赛名单类问题(Java实现)
- java String源码解析
- Spring MultipartResolver 和ServletFileUpload 冲突导致获取不到上传文件的url
- [Java] 通过文件流拷贝文件
- 图文详解 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)
- java实现图片压缩
- JAVA学习之包与import语句(三)
- Java获取多少秒钟之后的时间