Lorsqu'un programme Java démarre, un fil s'exécute immédiatement. L'importance du fil principal se reflète dans deux aspects:
Bien que le thread principal soit créé automatiquement au démarrage du programme, il peut être contrôlé par un objet de thread. Pour ce faire, vous devez appeler la méthode CurrentThread () pour obtenir une référence, qui est un membre statique public de la classe de threads. Sa forme habituelle est la suivante:
Courant de filetage statique ()
Cette méthode renvoie une référence au thread qui l'a appelé. Une fois que vous obtenez une référence au thread principal, vous pouvez contrôler le fil principal comme vous le faites pour contrôler d'autres threads.
Commençons par examiner les exemples suivants:
// Contrôlant le thread principal. du thread t.setname ("mon thread"); .println (n);Dans ce programme, la référence au thread actuel (ou le thread principal) est obtenue en appelant CurrentThread (), qui est stocké dans la variable locale t. Le programme affiche ensuite les informations du thread. Ensuite, le programme appelle setName () pour modifier le nom interne du thread. Les informations sur le thread s'affichent à nouveau. Ensuite, un nombre de cycle commence à diminuer de 5, s'arrêtant une seconde à chaque fois. La pause est effectuée par la méthode Sleep (). La déclaration Sleep () stipule clairement que le temps de retard est de 1 milliseconde. Faites attention au bloc d'essai / capture à l'extérieur de la boucle.
La méthode Sleep () de la classe de threads peut soulever une exception InterruptedException. Cette situation se produira lorsque d'autres fils veulent perturber le fil de sommeil. Cet exemple imprime simplement le message s'il a été interrompu. Dans les programmes réels, vous devez être flexible pour faire face à de tels problèmes. Ce qui suit est la sortie de ce programme:
Thread actuel: Thread [Main, 5, Main] après le nom de nom: Thread [My Thread, 5, Main] 54321
Notez que T est utilisé comme sortie lorsque le paramètre est utilisé dans l'instruction println (). L'ordre d'affichage: nom de thread, priorité et nom de groupe. Par défaut, le nom du thread principal est principal. Sa priorité est 5, ce qui est également la valeur par défaut, et le principal est également le nom du groupe de threads auquel il appartient. Un groupe de threads est une structure de données qui contrôle l'état des threads dans son ensemble. Ce processus est géré par un environnement d'exécution propriétaire, donc je ne vais pas entrer dans les détails ici. Une fois le nom de thread modifié, t est à nouveau en sortie. Cette fois, le nouveau nom de thread s'affiche.
Étudons plus attentivement les méthodes définies par la classe de threads du programme. La méthode Sleep () indique que le thread est appelé à suspendre en fonction de la milliseconde. Sa forme habituelle est la suivante:
Le sommeil statique vide (long millions de secondes) lance InterruptedException
Le temps de suspendre est clairement défini comme des millisecondes. Cette méthode peut lancer une exception InterruptedException.
Il existe une deuxième forme de la méthode Sleep (), qui est illustrée ci-dessous, qui vous permet de spécifier si le temps est en millisecondes ou des nanosecondes comme cycles.
Le sommeil vide statique (long millierscondes, int nanosecondes) lance InterruptedException
Le deuxième formulaire n'est disponible que si la période de temps est autorisée dans les nanosecondes. Comme indiqué dans le programme ci-dessus, vous pouvez utiliser setName () pour définir le nom du thread et utiliser getName () pour obtenir le nom du thread (ce processus n'est pas reflété dans le programme). Ces méthodes sont membres de la classe de threads et sont déclarées comme suit:
Final void setName (String ThreadName) Final String getName ()
Ici, ThreadName fait spécifiquement référence au nom du thread.