Heim  >  Artikel  >  Java  >  So implementieren Sie Java-Multithreading

So implementieren Sie Java-Multithreading

angryTom
angryTomOriginal
2019-11-11 13:55:323571Durchsuche

So implementieren Sie Java-Multithreading

So implementieren Sie Java-Multithreading

Java-Multithreading ist eine der erweiterten Funktionen von Java. Durch Multithreading können wir gleichzeitig Multitasking und Zusammenarbeit realisieren und unter bestimmten Umständen die Programmeffizienz verbessern. Java-Multithreading muss jedoch zunächst mit Vorsicht angewendet werden Hohe Programmierkenntnisse führen bei unsachgemäßer Verwendung zu Programmfehlern und böswilligen Threads zum Einfrieren des Programms. Zweitens kann der Missbrauch von Multithreading dazu führen, dass einige Schlüsselparameter gestört werden. In diesem Fall müssen Synchronisierung und Sperrenverwaltung zwischen Threads durchgeführt werden. Drittens verursacht der Thread-Wechsel zusätzliche Kosten, was oft als „Kontextwechsel“ bezeichnet wird. Bei unsachgemäßer Verwendung wird die Effizienz nicht nur nicht verbessert, sondern führt auch zu einem starken Effizienzverlust. (Empfohlenes Tutorial: Java-Tutorial)

1. Thread erben, um Multithreading zu implementieren

Java bietet einen Super-Klassen-Thread, den wir erweitern können Sobald Sie es geerbt haben, können Sie Multithreading implementieren, indem Sie die Ausführungsmethode überschreiben. Der spezifische Code lautet wie folgt:

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

2. Durch die Implementierung der Runnable-Schnittstelle 🎜 >Da einige Klassen Thread nicht erben können, um Multithreading zu implementieren, da Java vorschreibt, dass nur eine Superklasse gleichzeitig geerbt werden kann, aber mehrere Schnittstellen gleichzeitig implementieren können, ist Runnable noch beliebter . Der spezifische Code lautet wie folgt:

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

Die obige Methode definiert direkt die Klasse zum Implementieren der Runnable-Methode. Tatsächlich kann sie auch wie folgt in eine anonyme innere Klassenmethode umgewandelt werden, um einen Thread zu erstellen:

import java.io.*;
 
public class MyThread {
    public static void main(String[] args) throws IOException {
        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getId());
            }
        });
 
        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getId());
            }
        });
 
        t1.start();
        t2.start();
    }
}

3. Implementieren Sie einen Thread über Callable

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

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Java-Multithreading. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was bedeutet Ausnahme in Java?Nächster Artikel:Was bedeutet Ausnahme in Java?