Selon vous, quel est le meilleur moyen d'obtenir les résultats du travail d'un fil? Imaginez un thread qui fait quelques calculs, comment avertissez-vous le programme principal les calculs sont faits?Obtenir la sortie d'un fil
Vous pouvez interroger toutes les X millisecondes pour une variable publique appelée "travail terminé" ou quelque chose d'autre, mais alors vous recevrez les résultats plus tard que quand ils seraient disponibles ... le code principal serait perdre du temps en les attendant. D'un autre côté, si vous utilisez un X inférieur, le processeur serait gaspillé à interroger tant de fois. Alors, que faites-vous pour être conscient que le fil, ou certains fils, ont terminé leur travail?
Désolé si elle ressemble à cette autre question, qui est probablement la raison de la Eben réponse, je suppose. Ce que je voulais dire, c'était courir beaucoup de threads et savoir quand ils ont tous fini, sans les interroger.
Je pensais plutôt à partager la charge CPU entre plusieurs processeurs en utilisant des lots de threads, et à savoir quand un batch est terminé. Je suppose que cela peut être fait avec s futurs objets, mais que le blocage get méthode ressemble beaucoup à un verrou caché, pas quelque chose que j'aime.
Merci à tous pour votre soutien. Althought J'ai aussi aimé la réponse par erickson, je pense que saua de la plus complète, et celui que je vais utiliser dans mon propre code.
> et de savoir quand ab Atch a terminé. Pourquoi voulez-vous savoir cela? Avez-vous besoin de quelque chose de ce lot? Ou voulez-vous savoir quand vous pouvez réaliser plus de tâches? –
Ceci est très similaire à cette [question] (http://stackoverflow.com/questions/289434/how-to-make-a-java-thread-wait-for-another-threads-output). – kgiannakakis