2012-01-09 25 views
5

Escribo aplicaciones en Java utilizando ThreadPool. Primero creo un nuevo ThreadPool:Grupo de subprocesos en Java

private ExecutorService threadExecutor = Executors.newFixedThreadPool(20); 

Luego creo algunos objetos Runnable. Después de que yo haga mi ThreadPool de vez en cuando le pasa el mismo objeto Ejecutable:

threadExecutor.execute(serverRunnable); 

que ejecuta este ThreadPool cada 20 segundos. Mi problema es que threadExecutor deja de funcionar durante unos 5 minutos. Simplemente no ejecuta el objeto Runnable. Noté que cuando aumente el argumento en:

Executors.newFixedThreadPool(20); 

de 20 a p. Ej. 100 ThreadPool funcionará más tiempo. ¿Alguien puede explicarme por qué ThreadPool deja de funcionar?

Ps. Escribo este código en Android

+1

Por favor, publique el código de su objeto 'serverRunnable'. – artbristol

+3

¿Su Runnable se detiene correctamente? Si nunca finalizan su método 'run()', su grupo se agotará y 'execute()' se bloqueará esperando a que esté disponible un intervalo en el grupo. – Viruzzo

+0

Bueno, yo uso serverRunnable por ejemplo. Paso muchos Runnable diferentes a ThreadPoll y todos se detienen. Algunos de ellos hacen un trabajo trivial escribir algo en el registro. – klemens

Respuesta

Cuestiones relacionadas