Maison  >  Article  >  Java  >  Comment implémenter le multithreading en Java

Comment implémenter le multithreading en Java

(*-*)浩
(*-*)浩original
2019-12-04 09:16:226044parcourir

Comment implémenter le multithreading en Java

Le multithreading Java est l'une des fonctionnalités avancées de Java. Grâce au multithreading, nous pouvons réaliser à la fois un travail multitâche et collaboratif, améliorant ainsi l'efficacité du programme. dans certaines circonstances, mais Java multi-threading Toujours à utiliser avec prudence. (Apprentissage recommandé : Cours Java )

Tout d'abord, le multi-threading Java nécessite des compétences de codage plus élevées, une utilisation inappropriée provoquera des erreurs de programme, une concurrence malveillante entre les threads être compétitif. L’impasse provoque le gel du programme.

Deuxièmement, l'abus du multi-threading peut perturber certains paramètres clés. Dans ce cas, la synchronisation et la gestion des verrouillages entre les threads doivent être bien faites.

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 l'efficacité ne sera pas améliorée, mais elle entraînera une forte diminution de l'efficacité.

Comment implémenter le multi-threading en Java

Hériter du thread pour implémenter le multi-threading

Java fournit une super classe Thread for Let's extend. 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 :

package com.dingtao.test;
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();
    }
}

En implémentant l'interface Runnable.

Parce que certaines classes 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 :

package com.dingtao.test;
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();
    }
}

Utiliser Callable pour implémenter un fil de discussion

Le code spécifique est le suivant :

package com.dingtao.test;
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!

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