Comment faire pour exécuter les différentes méthodes de rapprochement
J'ai une méthode java qui contient 5 différentes méthodes internes. Pour l'amélioration de la performance, je tiens à appeler ces méthodes parallèle.
par exemple exécuter method1, method2, ... method5 parallèle à l'aide de fil.
private void getInformation() throws SQLException,
ClassNotFoundException, NamingException {
method1();
method2();
method3();
method4();
method5();
}
mais tous ces 5 méthodes différentes de la logique métier.
L'exécution de chaque méthode, en vertu de son propre thread en supposant qu'ils ne partagent aucune mutable état ?
Merci pour cette réponse, pourriez-vous préciser ou donner un exemple de lien 🙂
Ici, vous allez - vogella.com/articles/JavaConcurrency/article.html
Depuis que vous avez identifié que vous avez besoin de threads, ce qui est exactement votre question? Comment pouvez-vous invoquer de nouveaux threads?
oui...parce que ceux-ci sont différents de la logique métier. et je ne sais pas comment appeler les fils de cette
Merci pour cette réponse, pourriez-vous préciser ou donner un exemple de lien 🙂
Ici, vous allez - vogella.com/articles/JavaConcurrency/article.html
Depuis que vous avez identifié que vous avez besoin de threads, ce qui est exactement votre question? Comment pouvez-vous invoquer de nouveaux threads?
oui...parce que ceux-ci sont différents de la logique métier. et je ne sais pas comment appeler les fils de cette
OriginalL'auteur user1037452 | 2013-08-10
Vous devez vous connecter pour publier un commentaire.
Faire quelque chose comme ceci:
Voici un exemple simple:
Assurez-vous que chaque méthode ne permet pas de partager l'état (comme sur un champ mutable dans la même classe) ou vous pouvez obtenir des résultats inattendus. Oracle fournit une bonne introduction à Java Exécuteurs. Aussi, ce livre est génial si vous faites n'importe quel type de filetage en java.
List<Future<Void>> futureList = executor.invokeAll(taskList);
sera exécuté, de sorte que ces minuteries ne fonctionnent pas.Oui, vous avez raison. J'ai mis à jour l'exemple.
OriginalL'auteur lreeder
Pour exécuter method1 en parallèle, effectuer les opérations suivantes:
Le faire pour toutes vos méthodes.
Attendre method1 pour finir, ne
et ainsi de suite pour tous les autres threads.
Beaucoup de gens vont vous dire utilisation de pool de threads et ne s'étendent pas au Fil - tout cela a peu de sens pour vous, juste maintenant. La maîtrise de cette manière, et seulement de suivre ensuite des conseils.
OriginalL'auteur Alexei Kaigorodov
Vous pouvez utiliser le haut niveau de la simultanéité de l'instrument en Java pool de threads. Mais de toute façon, vous aurez à créer des Exécutables, des objets (des tâches), puis l'utilisation du pool de threads de la méthode - invokeAll(). Veuillez prendre un coup d'oeil à Oracle de la simultanéité tutoriel
Alors, quel est le problème avec l'aide de pool de threads et "différent de la logique métier"? Je ne comprends pas tout vos doutes. Mais il semble que vous avez besoin de lire des informations de base sur la simultanéité des trucs en java
OriginalL'auteur XZen
prendre un coup d'oeil à java.util.simultanées
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/package-summary.html
et le tutoriel:
http://docs.oracle.com/javase/tutorial/essential/concurrency/
fondamentalement, vous devez créer un executorserice, une classe étendant Praticable, et de les invoquer
OriginalL'auteur jlb
Vous devez utiliser 5 différents threads pour exécuter vos méthodes en parallèle, le code, il n'est pas difficile mais assez ennuyeux.
Vous voudrez peut-être avoir un coup d'oeil à Gpars Tâches, qui font de l'écriture de code parallèle beaucoup plus facile et agréable.
http://gpars.org/1.0.0/guide/guide/dataflow.html#dataflow_tasks
OriginalL'auteur pditommaso