2011-10-12 256 views
2

我有一个高容量的应用程序,它从文件中读取数据,然后通过POST从当前文件中获取X个记录,从而打到内部API(本地网络)。我使用HttpUrlConnection来进行API调用。没有API调用,它的运行速度非常快,但是一旦我放入API调用,它会减慢很多,并且看起来不能很好地扩展(例如,在8个线程处比在2处快,但每个线程的性能要低得多)。HttpUrlConnection是否存在并发性问题?

做了一些搜索,看起来底层实现似乎在做连接池(通常是一个好主意),并根据HttpURLConnection implementation question使用ConcurrentHashMap进行池化。我应该尝试关闭连接池吗?或者增加游泳池的大小?

+0

这是一篇从URLConnection切换到java.nio的文章。* http://drdobbs.com/java/184406242 – TJR

回答

1

并发问题可能出现在提供内部API的服务器端。 HttpURLConnection本身没有并发性问题,并且摆弄池等无助。我甚至不知道你可以改变泳池的大小,它受空闲超时IIRC的控制。