浏览 3716 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-10-23
pool = SockIOPool.getInstance(); pool.setServers( serverlist ); pool.setInitConn(5); pool.setMinConn(5); pool.setMaxConn(20); pool.setMaxIdle(600*1000); pool.setMaxBusyTime(600*1000); pool.setMaintSleep(600*1000); pool.setSocketTO(3*1000); pool.setNagle(false); pool.initialize(); 做了一轮压力测试后,连接数达到最大连接数20个连接,但是之后很久没有任何的存取数据操作,超过设置的最大空闲时间pool.setMaxIdle(600*1000),连接数还是20个连接保持建立着,请问有那个高手知道怎样让空闲的连接自动销毁? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2013-10-24
请问有熟悉的帮忙解答下?紧急,非常感谢。
|
|
返回顶楼 | |
发表时间:2013-10-27
我问下楼主,连接池是自己实现的?还是用的Memcache For Java Client啊?要是自己用Commons Pool实现的池子的话,连接用完了可以返回给池中;你说的意思是:假设现在池的容量20,目前只用了5个,那么另外15个就应该free掉。Executors.newCachedThreadPool
就有类似的功能:“创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。调用 execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。因此,长时间保持空闲的线程池不会使用任何资源。”,研究下他的源码就知道了。 |
|
返回顶楼 | |
发表时间:2013-10-30
你搞了池你担心什么?多余了。
|
|
返回顶楼 | |
发表时间:2013-10-30
sosojustdo 写道 我问下楼主,连接池是自己实现的?还是用的Memcache For Java Client啊?要是自己用Commons Pool实现的池子的话,连接用完了可以返回给池中;你说的意思是:假设现在池的容量20,目前只用了5个,那么另外15个就应该free掉。Executors.newCachedThreadPool
就有类似的功能:“创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。调用 execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。因此,长时间保持空闲的线程池不会使用任何资源。”,研究下他的源码就知道了。 头像是Lyn神啊 |
|
返回顶楼 | |