limites de la discussion dans le système d'exploitation et la mise en œuvre de threads de Java peuvent varier. Dans tous les cas, les threads consomment de la mémoire juste pour les maintenir même lorsqu'ils ne font rien puisque le système d'exploitation alloue une pile pour chaque instance. Dans une application Windows 32 bits, le nombre maximal de threads par processus est généralement 2048 car la taille de la pile par défaut est 1 Mo, donc 2 * 2048 = 2 Go. Cependant Java.exe sur Windows a une taille de pile de 256Kb donc peut-être qu'il peut aller plus haut.
Cependant, il n'est généralement pas nécessaire ou souhaitable de générer autant de threads. Quelque chose comme un serveur Web ou similaire utiliserait probablement un pool de threads et mettrait des limites sensibles sur le nombre maximum de threads qu'il permet à la fois. Seules les applications qui doivent traiter un grand nombre d'actions simultanées (par exemple un serveur IRC) doivent envisager de générer des milliers de threads, et même dans ce cas, je doute que ce soit une bonne idée. Avec l'équilibrage des charges, etc., la charge peut être répartie sur plusieurs PC, ce qui est une bonne chose du point de vue de la maintenance.
À quoi servent les pools de threads? –
@Peter: Les pools de threads démarrent leurs threads une seule fois. Ensuite, ils lui assignent un morceau de travail, et quand cela est fait, le garer dans la piscine à nouveau. – Thilo
@Thilo, littéralement c'est correct. Cependant, la question initiale était «les fils peuvent-ils être réutilisés?», Ce qui est déroutant en tout cas. –