您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页Java线程测试高并发

Java线程测试高并发

来源:二三娱乐
Java线程测试⾼并发

package com.expai.utils;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;

import java.net.HttpURLConnection;import java.net.URL;

import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import org.apache.log4j.Logger;public class BingfaTest {

protected static final Logger LOG = Logger.getLogger(BingfaTest.class); private static BingfaTest binfaTest = new BingfaTest(); public static BingfaTest getInstance() { return binfaTest; }

//count为启动线程的个数,httpUrl为请求的url,para为需要传的参数 public void exeThread(int count,String httpUrl,String para){ CyclicBarrier cyclicBarrier = new CyclicBarrier(count);

ExecutorService executorService = Executors.newFixedThreadPool(count); for (int i = 0; i < count; i++)

executorService.execute(new BingfaTest().new Task(cyclicBarrier,httpUrl,para)); //执⾏后不再执⾏新任务shutdown, executorService.shutdown();

//当线程池的⼯作队列中的所有任务执⾏完毕,executorService.isTerminated()⽅法就会返回true。 while (!executorService.isTerminated()) { try {

Thread.sleep(10);

} catch (InterruptedException e) { e.printStackTrace(); } } }

public class Task implements Runnable { private CyclicBarrier cyclicBarrier; private String httpUrl; private String para;

public Task(CyclicBarrier cyclicBarrier,String httpUrl,String para) { this.cyclicBarrier = cyclicBarrier; this.httpUrl=httpUrl; this.para=para; }

@Override public void run() { try {

// 等待所有任务准备就绪 cyclicBarrier.await(); // 测试内容

URL url =new URL(httpUrl+para);

HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setDoInput(true); //组织提交信息

PrintWriter out = new PrintWriter(connection.getOutputStream()); out.print(para); out.flush(); //获得返回信息

BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line=null;

//返回的参数拼接成字符串

StringBuffer content = new StringBuffer(); while((line=in.readLine())!=null){ content.append(line); }

in.close();

LOG.info(\"返回数据=====\"+content.toString());

LOG.info(\"返回数据=====\"+content.toString()); } catch (Exception e) { e.printStackTrace(); } } }}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yule263.com 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务