pour faire les traitements en //, vous démarrez N+1 thread 
Les N premiers threads vont lire dans une SynchronousQueue les personnes à traiter, et le dernier thread va y écrire au fur et à mesure le contenu de la list.
Grosso modo:
	
	SynchrounousQueue<Personne> synchronousQueue=new SynchrounousQueue<Personne>();
 un thread:
	
	1 2 3 4
   | for (Personne personne: listePersonne)
    synchronousQueue.put(personne);
for (int i=0;i<nbreThreads)
    synchronousQueue.put(UN_MARQUEUR_DE_FIN); // ben oui, un marqueur par thread | 
 les autres threads
	
	1 2 3 4
   |  
Personne personne = null;
while ((personne=synchrounousQueue.take()!=UN_MARQUEUR_DE_FIN)
   traiter(personne);  | 
 et tout ce bazard finira a peu près son bordel en meme temps
						
					
Partager