网络 - Java 异步http请求。
怪我咯
怪我咯 2017-04-17 17:19:27
[Java讨论组]

发送http 请求(request)后,需要等待一段时间,比如30秒后才能得到响应(response)。采用java,如何高效的实现在一定时间内,发送http请求后,得到尽可能多的响应。
我尝试过线程池,但是我有大约十多种不同类型的http请求,线程池数量一多比较消耗资源。我也试过Apache的HttpAsyncioRequest,但是其内部实现就是线程池,在我的这个问题上实现效率也不高。有没有比较好的库或者方法,或者类似python coroutine那样,可以高效的实现并发请求。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
高洛峰

参考NIO选择器

原始一点来考虑:

  1. 不管你多并发多异步,一个http请求发出去前肯定要建立一个TCP连接,发出去后,客户端肯定要有一个线程处于监听状态等待服务器的返回。

  2. 客户端非阻塞发http请求,每个线程请求发出去后创建一个新线程去监听http返回,原先的线程去做其他的工作。

这种方案会消耗double N个线程,N个TCP连接。

优化一点考虑:不用每个连接消耗一个线程去监听,可以一个线程监听所有连接的相应->选择器。

PHP中文网

可以发送完请求后释放连接和资源,让对方处理完后回调你的接口

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号