java CountDownLatch测试并发数
来源:互联网 发布:淘宝海狗鞭 编辑:程序博客网 时间:2024/04/30 06:59
package test;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.URL;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class ConcurrentTest2 {private static int thread_num =36;// 200;private static int client_num = 30;// 460;public static void main(String[] args) throws InterruptedException {ExecutorService exec = Executors.newCachedThreadPool();// thread_num个线程可以同时访问CountDownLatch latch=new CountDownLatch(thread_num);// 模拟2000个客户端访问for (int index = 0; index < thread_num; index++) {final int NO = index;exec.execute(new TaskThread(latch,NO));}// 退出线程池exec.shutdown();long start = System.currentTimeMillis();latch.await();//等待所有工作 完成long timeSpend = (System.currentTimeMillis()-start)/1000;System.out.println( "花费1: "+timeSpend +"秒" );//long end = (System.currentTimeMillis()-start)/1000;//当前时间离当天0点的毫秒数}static class TaskThread implements Runnable {CountDownLatch latch;int NO;public TaskThread(CountDownLatch latch, int NO) {this.latch = latch;this.NO = NO;}@Overridepublic void run() {try {System.out.println("Thread:" + NO);String host = "http://192.168.2.10:8080/revitbus/revit/list.html?";String para = "&type=0&system=1&year=2016";System.out.println(host + para);URL url = new URL(host);// 此处填写供测试的urlHttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");connection.setRequestProperty("Proxy-Connection", "Keep-Alive");connection.setDoOutput(true);connection.setDoInput(true);PrintWriter out = new PrintWriter(connection.getOutputStream());out.print(para);out.flush();out.close();BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line = "";String result = "";while ((line = in.readLine()) != null) {result += line;}// System.out.println(result);// Thread.sleep((long) (Math.random()) * 1000);// 释放System.out.println("第:" + NO + " 个");//System.out.println(result);latch.countDown(); //当前线程工作} catch (Exception e) {e.printStackTrace();}};}}
如果超时的话 时间算不出来 只能不断修改thread_num 统计出临界值,然后大致估算并发数
这个大概26 27个任务以上时候会有超时
26个大概耗时5秒 并发大概是5个。。这个时间我觉着应该没有这么多 但是暂时也没有更精确的时间差
实际并发数 应该有10个每秒
0 0
- 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并发API:闭锁 CountDownLatch
- Java并发编程之CountDownLatch
- Java并发-同步器Semaphore,CountDownLatch
- java并发编程之CountDownLatch
- 0x00D83DDA 处有未经处理的异常(在 DXFont.exe 中): 0xC000041D: 用户回调期间遇到未经处理的异常
- MFC笔记-小实例-分割窗口-源代码
- 查验身份证(水)
- leetcode 204. Count Primes-素数统计
- 发现一个多国语言互译的非谷歌翻译网站
- java CountDownLatch测试并发数
- 布局文件中出现的错误
- Eclipse调试Bug的七种常用技巧
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- java并发(共享,互斥,原子,可见,顺序性)
- linux命令行过长翻页
- jsp中的四种传参方式
- 关于winform生成的exe无法打开等异常情况总结
- Centos下安装scipy