连接池(ConnectionPool)、线程池(ThreadPool)、对象池(ObjectPool)……等等等等,所有“池”的原理都是一样的,就是:这些行为本身的开销很大。这里的“开销”,可能是 Socket 握手建链的开销、可能是上下文切换的开销、还可能是需要开辟大的内存空间的开销。而这些开销,往往会导致系统的资源被迅速耗尽。而“池”就是把这些开销可能会很大的行为,统一放到一个受控、高效的容器中管理。第二个问题,你自己思考一下不难得出答案。这两个“池”里的对象是相同类型的吗?
连接池(ConnectionPool)、线程池(ThreadPool)、对象池(ObjectPool)……等等等等,所有“池”的原理都是一样的,就是:
这些行为本身的开销很大。
这里的“开销”,可能是 Socket 握手建链的开销、可能是上下文切换的开销、还可能是需要开辟大的内存空间的开销。而这些开销,往往会导致系统的资源被迅速耗尽。
而“池”就是把这些开销可能会很大的行为,统一放到一个受控、高效的容器中管理。
第二个问题,你自己思考一下不难得出答案。这两个“池”里的对象是相同类型的吗?