Maison  >  Article  >  Java  >  Multithreading - Création de threads

Multithreading - Création de threads

王林
王林avant
2019-08-22 16:04:272626parcourir

Comment créer des threads

Résumons comment créer des multi-threads. Il existe quatre façons d'implémenter des multi-threads. Ensuite, nous parlerons en détail des méthodes de création. 🎜>

1. Héritez de la classe Thread, puis remplacez la méthode run()

2. Implémentez l'interface Runnable, puis remplacez la méthode run()

3. Implémentez l'interface appelable, puis remplacez l'appel93394317236f50dd7fc57027ba1d576cMethod

4. Pool de threads (discuté plus tard, car c'est plus compliqué)

Remarque : quelle que soit la méthode utilisée. pour créer un thread, utilisez toujours le start fourni par la classe Thread pour démarrer la méthode thread ().

1. Héritez de la classe Thread et remplacez la méthode d'exécution

class MyThread extends Thread {
    private String title;
    private int ticket = 20;
 
    public MyThread(String title) {
        this.title = title;
    }
 
    public void run() {  //放每个线程的子任务
        while (ticket > 0) {
            System.out.println("当前线程为"+title+",还剩下"+ticket--+"票");
        }
    }
}
 
public class ThreadTest {
    public static void main(String[] args) {
        MyThread myThread1 = new MyThread("黄牛A");
        MyThread myThread2 = new MyThread("黄牛B");
        MyThread myThread3 = new MyThread("黄牛C");
        myThread1.start();
        myThread2.start();
        myThread3.start();
    }
}

2. Implémentez l'interface Runnable et remplacez. la méthode run

class MyRunnable implements Runnable{
    @Override
    public void run() {
      for(int i =0;i <10;i++){
          System.out.println(Thread.currentThread().getName()+"、i="+i);
      }
    }
}
public class RunnableTest {
    public static void main(String[] args) {
       Runnable runnable =new MyRunnable();      //向上转型
        new Thread(runnable,"线程A").start();    //设置线程名字
        new Thread(runnable).start();     //没有设置线程名字,则是系统默认从 Thread-(0,1,2...)
        Thread thread1 = new Thread(runnable);
        thread1.setName("线程B");        //调用setName()设置名字
        thread1.start();
    }
}

Voici les trois façons de créer des noms de thread :

(1) Ajoutez le nom directement après les parenthèses

(2) Appelez setName () pour définir le nom

(3) Si aucun nom n'est défini, le système par défaut est Thread-(0,1,2....)


3. Implémentez l'interface Callable et remplacez la méthode calld94943c0b4933ad8cac500132f64757f

class MyCallable implements Callable<String>{
    private int ticket =20;
    @Override
    public String call() throws Exception {
        while(ticket > 0){
            System.out.println(Thread.currentThread().getName()+"还剩下"+ticket--+"票");
        }
        return "票卖完了,再见";
    }
}
public class CallableTest {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //产生Callable对象
        MyCallable myCallable = new MyCallable();
        //产生FutureTask对象
        FutureTask futureTask = new FutureTask(myCallable);
        Thread thread = new Thread(futureTask);
        thread.start();
        System.out.println(futureTask.get()); //接收Callable对象的返回值
    }
}

1. Générez d'abord l'objet Callable

2. Générez l'objet FutureTask

3. Créez un transfert de fil Entrez l'objet FutureTask

4. La valeur de retour reçue de l'interface Callable est la méthode get() dans Future

Comparaison de trois. façons de créer des threads

1 .L'héritage de la classe Thread a la limitation de l'héritage unique. Relativement parlant, l'implémentation de l'interface Runnable est plus flexible et la classe Thread elle-même implémente également l'interface Runnable pour aider le. vraie classe de thread

2. L'implémentation de l'interface Runnable peut mieux réaliser le partage de programme Concept

3 L'interface Callable est utilisée lorsqu'une valeur de retour est requise

S'il y a des choses évidentes. erreurs dans le contenu ci-dessus, veuillez le signaler, je vous en serais reconnaissant. Merci!

Pour plus de contenu connexe, veuillez visiter le site Web PHP chinois :

Tutoriel vidéo 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer