Maison >Java >javaDidacticiel >JAVA--Threads et multi-threading Explication graphique détaillée
【Thread】Flux de tâches unique dans le programme Java. Nous implémentons chaque tâche dans un thread relativement indépendant. main est le fil principal
【Concurrency】Effectuez plusieurs tâches en même temps. Les étapes d'exécution du programme sont toutes dans l'ordre, mais nous devons souvent traiter un problème simultanément au lieu de traiter un problème dans l'ordre
[Multi-threading] Les threads sont également considérés comme des objets, et le multi-threading fait référence à plusieurs threads. objets
[Classes prenant en charge les threads dans l'API] java.lang.Thread. L'objet de la classe Thread est l'objet thread
Exercice 1. Initialiser l'objet thread et imprimer le thread
package pkg3;public class test3 implements Runnable{ Thread th1; public test3() {//2 th1=new Thread(this);//2-1初始化了线程对象 th1.start();//2-2启动了线程对象,自动调用run方法 } public static void main(String[] args){ new test3();//1.从主线程开始,调用构造方法 }@Overridepublic void run() {//3 // TODO Auto-generated method stub System.out.println("线程运行了");//3-1打印线程,“运行了”} }
Exercice 2. Cycle de vie du thread : nouveau , exécutable, non exécutable, mort
package pkg3;public class test3 implements Runnable{ Thread th1; public test3() {//2 th1=new Thread(this);//2-1初始化了线程对象 th1.start();//2-2启动了线程对象,自动调用run方法 } public static void main(String[] args){ new test3();//1.从主线程开始,调用构造方法 }@Overridepublic void run() {//3 // TODO Auto-generated method stub while(true) { System.out.println("线程运行了");//3-1打印线程,“运行了” try { th1.sleep(500);//强制睡眠500毫秒,进入非运行状态not runnable(睡眠、堵塞、排队) } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
Exercice 3, multi-threading
package pkg3;public class test3 implements Runnable{ Thread th1,th2; public test3() {//2 th1=new Thread(this);//2-1初始化了线程对象 th2=new Thread(this); th1.start();//2-2启动了线程对象,自动调用run方法 th2.start(); } public static void main(String[] args){ new test3();//1.从主线程开始,调用构造方法 }@Overridepublic void run() {//3 // TODO Auto-generated method stub /*while(true) { System.out.println("线程运行了");//3-1打印线程,“运行了” try { th1.sleep(500);//强制睡眠500毫秒,进入非运行状态not runnable(睡眠、堵塞、排队) } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }*/ Thread th=Thread.currentThread();//这个方法可以判断进入run方法的线程对象 if(th==th1) { System.out.println("线程1运行了"); } if(th==th2) { System.out.println("线程2运行了"); } } }
Connexe recommandations :
Explication détaillée des threads Java et de la différence entre les threads et les processus
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!