Combien de threads sur Java 1.7 sont capables de gérer? Dans le programme Web client/serveur, les clients peuvent se connecter au serveur. Cette connexion est statefull. Clients> 3000 par serveurCombien de threads peuvent être gérés dans Java 1.7?
Répondre
Java possède des API qui limitent le nombre de threads à Integer.MAX_VALUE. (~ 2 milliards)
Cependant, votre système d'exploitation/matériel sera la véritable restriction. Entre 100 et 10K sera votre limite en fonction de ce que vous faites.
Les threads sont généralement créés pour améliorer les performances. Cependant, ils ajoutent des frais généraux de sorte que vous atteindrez un point où l'ajout de threads diminuera les performances. Dans de rares cas, deux threads ne sont pas aussi bons qu'un. Le point où plusieurs threads nuisent aux performances dépend de votre application, de votre matériel et de la manière dont il est utilisé. Remarque: Si vous avez 16 cœurs logiques, il ne restera plus que 16 threads en cours à un moment donné.
J'imagine que la limite supérieure a une certaine relation avec l'espace de tas disponible. Mais la limite réaliste a plus à voir avec le matériel sur lequel vous utilisez le système que la version de Java.
Pas d'espace de tas. Sur les systèmes 32 bits, espace d'adressage virtuel pour les piles. –
Il n'y a pas encore de Java 1.7. Sur un système 64 bits, vous pouvez aller à des dizaines de milliers. Sur les systèmes 32 bits, vous êtes en grande partie limité aux espaces d'adresses virtuelles pour les piles.
Merci pour votre lien. – DanialAbdi
En théorie? Milliers.
En pratique - dépend entièrement de votre système. Vous êtes plus susceptible de manquer de mémoire avant de manquer de threads.
"Assez". Si ce n'est pas le cas, vous utilisez des pools de threads avec un Executor approprié. Qu'est-ce que vous devez faire?
Gestion des connexions – DanialAbdi
Jetez un coup d'œil à JBoss Netty. http://jboss.org/netty –
Chaque thread a son propre espace de pile. La pile est stockée en dehors du tas, mais dans la mémoire allouée par la machine virtuelle Java. Ainsi, les threads maximum sont généralement liés par la quantité de mémoire que le système d'exploitation peut allouer à la JVM. Sous Windows, cela correspond à environ 1 000 à 2 000 threads maximum avant que la mémoire de la JVM ne soit insuffisante.
Les threads Java utilisent l'espace de pile alloué par le système d'exploitation, qui est __NOT__ affecté à la machine virtuelle Java. Il y a une petite quantité de mémoire JVM associée à chaque pile de threads, mais la pile réelle est allouée à la JVM à partir de la mémoire de processus OS __external__, ce qui fait que la JVM utilise moins de mémoire Xmx/Xms peut réellement augmenter le nombre de threads disponibles –
- 1. Combien d'instructions peuvent être conditionnelles dans MySQL?
- 2. Comment les scripts d'extension de VIM peuvent-ils être gérés?
- 3. Combien de mails peuvent être envoyés à la fois?
- 4. Combien de données peuvent être envoyées via $ _GET
- 5. Récupérer la liste des threads gérés actuellement actifs dans .NET?
- 6. Combien d'applications peuvent être signées avec une seule touche?
- 7. Combien de threads utilise curl_multi_exec?
- 8. Les sous-domaines peuvent-ils être gérés par programme dans une application ASP.Net?
- 9. Les applications Java SE peuvent être regroupées
- 10. Combien d'utilisateurs peuvent supporter IIS?
- 11. Combien de connexions maximales peuvent avoir Oracle?
- 12. C# Comment compter les threads gérés dans mon AppDomain?
- 13. Combien de connexions peuvent gérer sqlite 3?
- 14. Combien de boutons radio peuvent être vérifiés à un moment donné dans ce formulaire spécifique?
- 15. Combien de clients peuvent être pris en charge par le serveur Gamekit dans IPhone 3.0
- 16. Trop de fichiers ouverts: combien sont ouverts, ce qu'ils sont, et combien peuvent l'ouvrir
- 17. Combien d'appels HttpWebRequest sortants simultanés peuvent être effectués dans ASP.NET/IIS7?
- 18. Dans un seul conteneur Web, combien d'applications Web différentes peuvent être exécutées?
- 19. Linux: combien de données peuvent être passées en arguments de ligne de commande?
- 20. Combien d'enregistrements peuvent être chargés dans Salesforce à l'aide d'Apex Data Loader en une fois?
- 21. Déterminez combien de caractères peuvent entrer dans DIV avec JavaScript
- 22. Combien de temps les liens d'ancre de même page peuvent-ils être?
- 23. Combien de temps d'exécution (CLR) peuvent être chargés en un seul processus?
- 24. Combien de bits peuvent être transférés via Ethernet à chaque fois?
- 25. Comment obtenir une référence à tous les threads gérés
- 26. Combien de touches peuvent être détectées à la fois par l'iPhone?
- 27. Les processeurs XSLT peuvent-ils être multithread?
- 28. Problème de threads Java
- 29. Quels sont les inconvénients de l'utilisation de threads non gérés dans un environnement géré?
- 30. Threads Java
Combien en avez-vous? –
Vous devez être plus précis je pense pour obtenir de bonnes réponses. Donnez un résumé de ce que vous essayez d'accomplir. – AaronLS
Dans le programme Web Serveur/Client Les clients peuvent se connecter au serveur. Cette connexion est statefull. – DanialAbdi