Maison > Java > javaDidacticiel > Implémentation du multithreading en Java

Implémentation du multithreading en Java

王林
Libérer: 2019-11-28 17:00:29
avant
2680 Les gens l'ont consulté

Implémentation du multithreading en Java

La première méthode consiste à définir une sous-classe de la classe Thread :

//第一种方法
public class MyThread extends Thread {
    @Override
    public void run() {
        String name = getName(); // 获取线程名称
        System.out.println(name); // 输出 Thread-0
    }
}
Copier après la connexion
//第二种方法
public class MyThread extends Thread {
    @Override
    public void run() {
        Thread t = Thread.currentThread(); // 获取当前线程
        System.out.println(t); 	// 下面调用后输出 Thread[Thread-0,5,main]
        System.out.println(t.getName());// 输出 Thread-0
    }
}
Copier après la connexion

Recommandation vidéo liée à Java : apprentissage en ligne Java

Activer le multi-threading :

public class demo1Test {
    public static void main(String[] args) {
        MyThread mt = new MyThread();
        mt.start();// 会运行MyThread的run()方法
   }
}
Copier après la connexion

La deuxième façon consiste à implémenter l'interface Runnable :

Étapes d'implémentation :

1. Créez une classe d'implémentation de l'interface Runnable

2. Réécrivez la méthode run de l'interface Runnable dans la classe d'implémentation et définissez la tâche de thread

3. Créez un objet de classe d'implémentation du Interface Runnable

4. Créez un objet de classe Thread et transmettez l'objet de classe d'implémentation de l'interface Runnable dans la méthode de construction

5. Appelez la méthode start dans la classe Thread pour démarrer un nouveau thread. pour exécuter la méthode run

public class Runnableimpl implements Runnable {//1.创建一个Runnable 接口的实现类
    @Override
    public void run() {
        for (int i = 1; i <= 20; i++) {// 2.在实现类中重写Runnable接口的run方法,设置线程任务
            System.out.println(Thread.currentThread().getName() + i);
        }
    }
}
Copier après la connexion
public class demo2Test {
    public static void main(String[] args) {
        Runnable run = new Runnableimpl();//3.创建一个Runnable接口的实现类对象
        Thread t = new Thread(run); //4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象
        t.start();//5.调用Thread类中的start方法,开启新的线程执行run方法
        for (int i = 1; i <= 20; i++) {
            System.out.println(Thread.currentThread().getName() + i);
        }	// Thread-0和main开始多线程抢夺cpu
    }
}
Copier après la connexion

Avantages de l'implémentation de l'interface Runnable pour créer des multi-threads :

Éviter les limitations de l'héritage unique : <🎜. >

Une classe ne peut hériter que d'une seule classe. Une fois qu'une classe hérite de Thread, elle ne peut pas hériter d'autres classes

implémente l'interface Runnable, et peut également hériter d'autres classes et implémenter d'autres interfaces.

2. Améliorer l'évolutivité du programme et réduire le couplage du programme

La façon d'implémenter l'interface Runnable consiste à séparer les tâches de configuration des threads et les tâches de démarrage des threads.

Dans la classe d'implémentation, remplacez la méthode run() pour définir les tâches du thread.

Créez un objet de classe Thread et appelez la méthode start() pour démarrer un nouveau fil

méthode sleep() pour mettre la méthode en veille

public class sleepTest {
    public static void main(String[] args) {
        for (int i = 0; i < 20; i++) {
        //使用Thread类的sleep方法,让方法睡眠1秒钟
            try {
                Thread.sleep(1000);//传入的是毫秒值
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(i);
        }
    }
}
Copier après la connexion
java Articles et tutoriels connexes recommandés :

Démarrage rapide avec Java

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal