Estou com uma dúvida em relação ao método Executors.newFixedThreadPool(int param).
Criando um pool de trheads com este método o programa “para” quando o pool fica cheio?
Por exemplo, tenho um loop que chama o ExecutorService.execute, quando as threads forem totalmente usadas no pool o programa entra em em sleep?
Exemplo:
...
ExecutorService es = Executors.newFixedThreadPool(100);
...
public void foo() {
boolean status = true;
List list;
while(status) {
list = dao.getContent();
if ( list.size() < 0 ) { continue; }
iterator = list.iterator();
while(iterator.hasNext()) {
es.execute(new ThreadExample(iterator.next()));
iterator.remove();
}
}
}
No exemplo acima, caso a minha dao retorne 300 objetos, só os 100 primeiros serão processados? E ai o programa fica esperando para processar os outros 200? ou o programa continua rodando e “populando” o meu list?