Je reproduis 20 threads (ils sont tous censés fonctionner en même temps). Cependant, ils sont tous créés en même temps et tous commencent à s'exécuter en même temps, ce qui donne à l'ensemble du programme un décalage majeur (c'est un décalage, mon ordinateur n'est pas lent). Donc, je veux les faire créer à différents moments, par exemple. générer un toutes les 2 secondes ou plus. Comment puis-je faire cela? J'ai essayé d'utiliser une tonne de choses, mais rien ne fonctionne comme je le veux. J'ai essayé d'utiliser des méthodes booléennes pour ne pas boucler à nouveau jusqu'à ce que ce soit vrai, mais cela ne semble pas fonctionner. Des idées?Comment ralentir la génération de Threads en java?
for (int i = 0; i < 20; i++) {
Rain r = new Rain();
r.start();
}
Je peux créer des milliers de threads sur mon Macbook Pro en une seconde. Pouvez-vous expliquer un peu plus ce que vous entendez par retard et pourquoi pensez-vous que la création de threads est en cause? – Gray
êtes-vous en train de jouer avec les priorités de threads ou en utilisant beaucoup de mémoire dans les threads eux-mêmes? 20 threads ne devraient poser aucun problème, sauf si vous avez beaucoup de conflits entre les threads ... –
20 threads, ou 150 threads, prend un temps imperceptible. S'il se passe quelque chose d'autre dans le thread ctor qui provoque un retard accru, alors une solution raisonnable pour 'lag' est de créer un thread de faible priorité qui crée ensuite les 20/150 autres threads avec une faible priorité. Je n'ai jamais vu aucun besoin de Sleep (2000), dans une boucle de construction de fil, jamais. –