java – 异步http客户端(ning)创建更多线程?
发布时间:2020-12-14 05:53:53 所属栏目:Java 来源:网络整理
导读:我正在使用 ning async http客户端来实现非阻塞性的优点.做一个苹果对苹果测试(非阻塞与阻塞),我发现非阻塞版本正在提供更多的请求样本,但异步http客户端正在创建比其阻塞对应物更多的线程.这是预期还是我遗失的东西? 以下是压力测试的数字 Async Http Clie
我正在使用
ning async http客户端来实现非阻塞性的优点.做一个苹果对苹果测试(非阻塞与阻塞),我发现非阻塞版本正在提供更多的请求样本,但异步http客户端正在创建比其阻塞对应物更多的线程.这是预期还是我遗失的东西?
以下是压力测试的数字 Async Http Client jMeter - 2 threads,120 seconds,1 sec ramp up Peak threads : 270 Heap usage: 600mb Peak cpu usage: 30% Total samples: 18228 Blocking version jMeter - 2 threads,1 sec ramp up Peak threads: 118 heap usage: 260mb cpu usage: 18% total samples: 1472 我正在创建一个连接线程池(重用它们) AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder(); builder.setRequestTimeoutInMs(2000); builder.setMaximumConnectionsPerHost(10); builder.setMaximumConnectionsTotal(100); client = new AsyncHttpClient(builder.build()); 这里有什么我想念的吗?我试着查看线程转储以查看创建线程的内容,但没有找到任何有用的东西. 解决方法
编辑11/16/2015
看起来回购搬家了.请参见this line,您可以在其中更改使用的ThreadFactory.如果未设置,则看起来它使用默认值.这由ChannelManager here使用. 你也可以在简单的客户端上设置它,如here所示 原始w /死链接已删除 快速查看代码 – 看起来应用程序线程池使用的Executor服务是一个缓存的线程池,它根据需要创建线程.您可以使用构建器上的setter设置客户端使用的执行程序服务. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |