我使用Java编写应用程序,使用线程池。首先,我创建一个新的线程池:
private ExecutorService threadExecutor = Executors.newFixedThreadPool( 20 );
然后我创建一些Runnable对象。之后,我不时地执行我的线程池,并传递相同的Runnable对象:
threadExecutor.execute(serverRunnable);
我每20秒执行一次这个线程池。我的问题是,线程执行器会停止工作大约5分钟左右。它不执行可运行对象。我注意到当我增加参数时:
Executors.newFixedThreadPool( 20 );
当线程池的数量从20增加到100时,线程池将会工作更长时间。有人能解释一下为什么线程池会停止工作吗?
附注:我在Android中编写此代码。
serverRunnable
对象代码。 - artbristolrun()
方法,你的线程池将被耗尽并且execute()
将会锁定等待池中的一个插槽可用。 - Viruzzo