2010-01-26 7 views
26

Je veux connaître le nombre maximum de threads pour une application.Nombre maximal de threads pour une application?

Vous connaissez Thread.activeCount() renvoie le nombre de threads actifs dans le groupe Thread en cours d'exécution et ses sous-groupes.

Si je peux connaître le nombre maximum de threads à créer dans l'activité actuelle, je peux limiter les threads actifs. J'utilise thread pour la connexion http et attraper la réponse HTTP.

Merci d'avance.

+3

Avez-vous trouvé la réponse? –

Répondre

20

Il n'y a pas de maximum imposé par le code que je connaisse. Cela étant dit, même pour les E/S réseau, les rendements décroissants se règlent assez rapidement, car la vitesse du processeur des appareils Android est relativement faible et la RAM est assez limitée.

Veuillez considérer utiliser AsyncTask au lieu de vos propres discussions. Cela utilise un pool de threads mis en place par Android, et il utilisera donc une taille de pool que l'équipe Android de base estime efficace pour la plate-forme.

+0

AsyncTask est génial, le seul problème est que sur certaines versions d'Android, vous ne pouvez pas avoir deux tâches en parallèle (les tâches sont exécutées en série) mais sur d'autres versions que vous pouvez. Tout correctif pour cela, à part réécrire AsyncTask à partir de son code source? – Tomasz

+6

@Tomasz: "Tout correctif pour cela, à part réécrire AsyncTask à partir de son code source?" - utilisez 'executeOnExecutor()' sur l'API Niveau 11+ pour activer le paramètre 'THREAD_POOL_EXECUTOR'. – CommonsWare

+1

Ou utilisez ThreadPoolExecutor pour des tâches spécialisées, là vous avez un meilleur contrôle. –

Questions connexes