De combien de façons sont pour la création d'un nouveau thread en Java?
En fait, ce que d'autres moyens sont disponibles, outre l'extension de la classe Thread et l'implémentation de l'interface Runnable?
Ce n'est pas une bonne approche pour étendre la classe Thread! utilisez toujours la dernière
C'est principalement ça. Il y a d'autres moyens d'exécuter les Runnables comme ThreadPoolExecutor etc., mais ils tous exigent la mise en œuvre de la
C'est principalement ça. Il y a d'autres moyens d'exécuter les Runnables comme ThreadPoolExecutor etc., mais ils tous exigent la mise en œuvre de la
Runnable
interface.OriginalL'auteur Ion Ionascu | 2011-09-02
Vous devez vous connecter pour publier un commentaire.
Il y a exactement un moyen de créer un nouveau thread en Java et qui consiste à instancier
java.lang.Thread
(pour réellement exécuter ce thread vous devez également appelerstart()
).Tout ce qui crée des threads en Java code revient à présent d'une façon derrière le capot (par exemple, un
ThreadFactory
mise en œuvre va instancierThread
objets à un certain point, ...).Il y a deux manières différentes de spécifier le code à exécuter dans ce Thread:
java.lang.Runnable
et de passer une instance de la classe de mise en œuvre de leThread
constructeur.Thread
lui-même et de remplacer sonrun()
méthode.La première approche de mise en œuvre de
Runnable
) est généralement considéré comme le plus approprié parce que vous n'avez pas l'habitude de créer un nouveau "type" de Thread, mais souhaitez tout simplement d'exécuter du code (c'est à dire unRunnable
) dans un thread dédié.Sauer qu'en est - il exigible ? est-il aussi revient à l'instanciation de la classe Thread ?
est assez similaire à
Runnable
qu'il en soi, ne pas faire tout ce qui est lié aux threads, mais il peut être utilisé de diverses façons pour passer le code à exécuter, d'une certaine façon, y compris dans un autre thread. Donc, si vous passez unCallable
à votreExecutorService
alors il peut très bien se retrouver en cours d'exécution sur un nouveau fil de discussion, mais les instantion de le thread va encore être fait vianew Thread
quelque part derrière les coulisses.OriginalL'auteur Joachim Sauer
Threads peuvent être créés principalement dans 3 manières différentes
Faveur Appelable interface avec l'Exécuteur cadre pour la mise en pool de threads.
L'Exécutable ou Remboursables par anticipation de l'interface est préféré par rapport à l'extension de la classe Thread
OriginalL'auteur ankit249
Ou vous pouvez créer un Callable qui est une interface qui est similaire à Praticable sauf qu'il définit une méthode appel qui peut retourner une valeur. Pour instantiante un Callable, vous pouvez passer à un exécuteur testamentaire. Vous trouverez une explication complète de multithreading et appelable exemples ici
OriginalL'auteur Dimitri
Le moyen privilégié de départ threads en Java 6 est en utilisant les Exécuteurs:
Thread
, alors ce n'est pas la voie.Je pense que est OK pour utiliser le thread ici. Remarquer les minuscules t dans le thread. Et ces exécuteurs en fait de créer et de gérer des Threads.
il a deux méthodes:
execute(Runnable)
et un autresubmit(Callable<T>)
.Si vous souhaitez démarrer un thread, composez le Thread#start(). Si vous souhaitez exécuter un tâche, l'utilisation d'un exécuteur testamentaire service. Un ExecutorService peut démarrer un thread à exécuter votre tâche, ou il peut ré-utiliser un fil de discussion existant, ou il peut simplement exécuter la tâche dans le thread appelant. Le ExecutorService interface n'a dit que la tâche doit finalement être effectuée, et que vous devez retourner un Avenir qui vous permet d'attendre le résultat. Il y a d'autres utilisations pour les threads en plus de l'exécution des tâches.
OriginalL'auteur Mister Smith
Il y a effectivement un total de 4 façons de créer de thread en java :
java.lang.Thread
classejava.lang.Runnable
interfaceCallable
interface.OriginalL'auteur Shashank K
Il y a seulement Deux façons de créer un Thread déjà vous avez mentionné, mais une troisième manière est-il d'invoquer le Fil.
En java1.5 il existe une autre façon d'invoquer un thread. C'est par “ExecutorService”. Toutes ces classes sont de la “java.util.simultanées”. Il existe différentes façons de créer un “ExecutorService” à l'aide “Exécuteurs” de l'usine de la classe. Ce qui suit est l'une des façon de créer de la “ExecutorService”..
ExecutorService es= Exécuteurs testamentaires.newSingleThreadExecutor();
RunnableImpl r = new RunnableImpl();
Avenir fu=es.soumettre(r);
À l'aide de “ExecutorService” méthodes nous pouvons soumettre eighter Praticable ou Remboursables par anticipation au service de l'exécution.
Comment jamais, cela ne peut pas être dit que la nouvelle façon de créer un Thread. C'est parce que ExecutorService utilise en interne “ThreadFactory” classe pour créer un nouveau thread qui utilise en interne dans la première ou la deuxième méthode. Nous devons donc dire qu'il y a seulement deux façons de créer des threads, mais il y a une nouvelle façon java1.5 à invoquer un fil, mais de ne pas créer un Thread.
OriginalL'auteur subhashis
pour la création d'un thread il est seulement un moyen en java
ie. Classe Thread méthode start (), mais il y a différentes manières d'exécuter le thread
en utilisant différents moyens
comme 1.Fil
2.Praticable
3.RunnableFeature
4.Callable
5.ERxecutorService...etc
OriginalL'auteur Venkat IndianEagle