Les Threads les threads en Java?
Je suis actuellement en train de réfléchir à la conception d'un multithreading système en Java, besoin de faire un peu lourde réseau de traitement et de stockage de base de données. Le programme va se lancer trois fils à la première. Sur la base de ces fils, je voudrais lancer d'autres threads pas de programme principal, mais à partir de deux des fils. Est-il possible pour un thread pour lancer un autre thread, conduisant ainsi à une sorte de hiérarchie comme:
> Parent ->t0 thread1 -> t1 tread1.1
> ->t0 thread2
> ->t0 thread3 -> t2 thread3.1
t0= inital time
t1,t2 = time at a point in the running thread
t1 != t2
Pas si quelqu'un pourrait fournir une solution théorique avec des références?
Euh, oui. Pourquoi ne pas vous être en mesure de? Peut-être que si vous avez essayé ...
Je ne suis pas sûr de ce que vous demandez. Vous pouvez créer une nouvelle discussion à partir de code java, indépendamment de ce thread c'est en cours d'exécution. Ne les threads ont besoin de garder des références à d'autres threads ils se reproduisent? Quel est le but de la hiérarchie que vous décrivez?
Je ne suis pas sûr de ce que vous demandez. Vous pouvez créer une nouvelle discussion à partir de code java, indépendamment de ce thread c'est en cours d'exécution. Ne les threads ont besoin de garder des références à d'autres threads ils se reproduisent? Quel est le but de la hiérarchie que vous décrivez?
OriginalL'auteur user253530 | 2011-08-28
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez lancer autant de threads que vous voulez, mais ce n'est probablement pas la meilleure façon d'aller. C'est beaucoup mieux d'utiliser la non-blocage de l'API de sorte que vous pouvez commencer à l'exécution de certains d'appel externe et le thread appelant pouvez immédiatement commencer à faire quelque chose d'autre sans attendre sur le support/base de données d'appel à revenir. Puis, quand le support/base de données d'appel, un rappel est déclenché pour terminer que le traitement.
Non-blocage I/O peuvent fournir de loin supérieur de l'utilisation de l'UC, puisque vous êtes juste de déclenchement des appels et l'enregistrement de rappels et de ne pas avoir à essayer d'équilibrer le "bon" nombre de threads simultanés qui sont pour la plupart juste dormir de toute façon.
http://www.owlmountain.com/tutorials/NonBlockingIo.htm
http://www.tensegrity.hellblazer.com/2008/03/non-blocking-jdbc-non-blocking-servlet-apis-and-other-high-mysteries.html
Les deux liens sont morts...
OriginalL'auteur John Smith
Pour répondre à la question, oui threads pouvez lancer d'autres threads.
Est la hiérarchie important?
Vous êtes probablement mieux d'utiliser un ExecutorService avec une mise en cache du pool de threads. De cette façon, vous pouvez pool de threads au lieu de créer des lots (qui est cher). ExecutorServices également fournir d'autres choses cool, et à l'aide de Callables /Runnables avec eux est probablement beaucoup plus facile à tester que de coucher avec des threads sur votre propre.
OriginalL'auteur Jord Sonneveld
Oui un thread peut lancer un autre fil, et ce fil peut lancer des fil(s) et sur...
Dans le
run()
méthode d'un thread - vous pouvez créer et lancer d'autres threads.OriginalL'auteur JJ.
C'est possible
par exemple, vous pouvez créer de thread et de mettre l'id de tableau comme ceci
Après que vous pouvez donner à la subMainThread le tableau tab
exemple
ici d'une simple utilisation de thread :
http://kamel.berrayah.com/wordpress/2013/07/java-threads/
OriginalL'auteur user1824955