Maison >Java >javaDidacticiel >JAVA--Threads et multi-threading Explication graphique détaillée

JAVA--Threads et multi-threading Explication graphique détaillée

php是最好的语言
php是最好的语言original
2018-08-08 10:28:411297parcourir

【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打印线程,“运行了”}
}

JAVA--Threads et multi-threading Explication graphique détaillée

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();
    }
    }
}
}

JAVA--Threads et multi-threading Explication graphique détaillée

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运行了");
    }
}
}

JAVA--Threads et multi-threading Explication graphique détaillée

Connexe recommandations :

Java -- Multithreading

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn