Comment implémenter le multi-threading Java
Le multi-threading Java est l'une des fonctionnalités avancées de Java. Grâce au multi-threading, nous pouvons réaliser un travail multitâche et collaboratif en même temps, et améliorer l'efficacité du programme dans certaines circonstances. Cependant, le multi-threading Java doit toujours être utilisé avec prudence. Tout d'abord, le multi-threading Java nécessite. des compétences élevées en codage. Une fois utilisé de manière inappropriée, cela provoquera des erreurs de programme et des threads. Une concurrence malveillante pour les blocages entraînera le gel du programme. Deuxièmement, l'abus du multithreading peut perturber certains paramètres clés. Dans ce cas, la synchronisation et la gestion des verrous entre les threads doivent être effectuées. Troisièmement, le changement de thread nécessite des coûts supplémentaires, souvent appelés « changement de contexte ». S'il est mal utilisé, non seulement il n'améliorera pas l'efficacité, mais entraînera une forte diminution de l'efficacité. (Tutoriel recommandé : tutoriel Java)
1. Hériter du fil pour implémenter le multi-threading
Java fournit un fil de super classe que nous pouvons étendre , une fois que vous en avez hérité, vous pouvez implémenter le multi-threading en remplaçant la méthode run. Le code spécifique est le suivant :
import java.io.*; public class MyThread extends Thread{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) throws IOException { Thread t1 = new MyThread(); Thread t2 = new MyThread(); t1.start(); t2.start(); } }
2 En implémentant l'interface Runnable,
<.>Parce que pour certaines classes, elles ne peuvent pas hériter de Thread pour implémenter le multi-threading, car Java stipule qu'une seule super classe peut être héritée en même temps, mais elle peut implémenter plusieurs interfaces en même temps, donc Runnable est encore plus populaire . Le code spécifique est le suivant :import java.io.*; public class MyThread implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) throws IOException { Thread t1 = new Thread(new MyThread()); Thread t2 = new Thread(new MyThread()); t1.start(); t2.start(); } }La méthode ci-dessus définit directement la classe pour implémenter la méthode Runnable. En fait, elle peut également être transformée en méthode de classe interne anonyme pour créer un Thread, comme suit :
import java.io.*; public class MyThread { public static void main(String[] args) throws IOException { Thread t1 = new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getId()); } }); Thread t2 = new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getId()); } }); t1.start(); t2.start(); } }
3. Implémenter un fil de discussion via Callable
import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; public class MyThread implements Callable<Integer>{ public static void main(String[] args){ MyThread t1 = new MyThread(); FutureTask<Integer> future = new FutureTask<Integer>(t1); new Thread(future,"呵呵哒").start(); } @Override public Integer call() throws Exception { System.out.println(Thread.currentThread().getName()); return null; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!