作者:浪奔西安 | 来源:互联网 | 2023-06-16 16:53
直接上代码
1.主程序
public class TestMain {
public static void main(String[] args) throws NSQException, TimeoutException {
ExecutorService pool = Executors.newCachedThreadPool();
// http请求
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
cm.setDefaultMaxPerRoute(800);// 设置每个路由基础的连接
cm.setMaxTotal(1000);//设置最大连接数//cm.setMaxPerRoute(new HttpRoute(httpHost), maxRoute);// 设置目标主机的最大连接数
CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm).build();
for (int i = 0; i <1000; i++) {
TestRunnable tmp = new TestRunnable(httpClient);
new Thread(tmp).start();
}
}
}
2.线程使用httpclient进行post请求,其中调用的post请求具体实现已经做了封装,可参考我之前的文章
class TestRunnable implements Runnable {
private final CloseableHttpClient httpclient;
public TestRunnable(CloseableHttpClient httpClient) {
this.httpclient = httpClient;
}
@Override
public void run() {
String id = "444";
String name = "testName";
Map param = new HashMap();
param.put("id", id);
param.put("name", name);
String result = HttpClientUtil.doHttpPost("http://ip:port/testapi", param,httpclient);
System.out.println(result);
}
}