dan*_*din 1 android retrofit2 okhttp3
我正在使用Retrofit2。我可以创建多个OkHttp3客户端并与其他实例共享第一个实例的连接池吗?这是线程安全和好的做法吗?
实例化每个客户端的ConnectionPool使用OkHttpClient.Builder,并使用connectionPool(ConnectionPool connectionPool)方法传递所有新客户端实例。
ConnectionPool仅用于重用连接,并且是线程安全的。但是,您应该考虑OkHttp自述文件中的以下片段:
不再有全局单例连接池。在OkHttp 2.x中,默认情况下,所有OkHttpClient实例共享一个公共连接池。在OkHttp 3.x中,每个新的OkHttpClient都有自己的专用连接池。应用程序应避免创建许多连接池,因为这样做会阻止连接重用。每个连接池都拥有自己的活动连接集,因此具有许多连接池的应用程序也有耗尽内存的风险!
| 归档时间: |
|
| 查看次数: |
2171 次 |
| 最近记录: |