Heim  >  Artikel  >  Java  >  Cap-Programmierung mit mehreren Threads

Cap-Programmierung mit mehreren Threads

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-22 05:38:17903Durchsuche

Hauptfähigkeiten und Konzepte
• Verstehen Sie die Grundlagen der Erstellung mehrerer Threads
• Kennen Sie die Thread-Klasse und die Runnable
-Schnittstelle • Erstellen Sie einen Thread
• Erstellen Sie mehrere Threads
• Bestimmen Sie, wann ein Thread endet
• Thread-Prioritäten verwenden
• Thread-Synchronisierung verstehen
• Verwenden Sie synchronisierte Methoden
• Verwenden Sie synchronisierte Blöcke
• Fördern Sie die Kommunikation zwischen Threads
• Threads anhalten, fortsetzen und stoppen

Threads: Dies sind unabhängige Ausführungspfade innerhalb eines Programms.
Multitasking: Es kann auf Prozessen (mehrere Programme) oder Threads (mehrere Aufgaben im selben Programm) basieren.
Vorteile:
Höhere Effizienz bei der Nutzung von Leerlaufzeiten.
Bessere Nutzung von Multicore-/Multiprozessorsystemen.

Thread-Erstellung und -Verwaltung

Klassen und Schnittstellen:
Thread: Klasse, die Threads kapselt.
Ausführbar: Schnittstelle zum Definieren benutzerdefinierter Threads.

Gemeinsame Thread-Klassenmethoden:

  • getName(): Gibt den Namen des Threads zurück.
  • getPriority(): Gibt die Priorität zurück.
  • isAlive(): Prüft, ob der Thread noch ausgeführt wird.
  • join(): Wartet auf das Ende des Threads.
  • run(): Definiert den Einstiegspunkt des Threads.
  • sleep(long ms): Hält den Thread für einen bestimmten Zeitraum an.
  • start(): Startet die Thread-Ausführung.

Threads erstellen:

  • Runnable implementieren:
class MyThread implements Runnable {
    String threadName;

    MyThread(String name) {
        threadName = name;
    }

    public void run() {
        System.out.println(threadName + " starting.");
        try {
            for (int i = 0; i < 10; i++) {
                Thread.sleep(400);
                System.out.println("In " + threadName + ", count is " + i);
            }
        } catch (InterruptedException e) {
            System.out.println(threadName + " interrupted.");
        }
        System.out.println(threadName + " terminating.");
    }
}

public class UseThreads {
    public static void main(String[] args) {
        System.out.println("Main thread starting.");

        MyThread myThread = new MyThread("Child #1");
        Thread thread = new Thread(myThread);
        thread.start();

        for (int i = 0; i < 50; i++) {
            System.out.print(".");
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                System.out.println("Main thread interrupted.");
            }
        }
        System.out.println("Main thread ending.");
    }
}

Erwartete Ausgabe:

Main thread starting.
.
Child #1 starting.
..
In Child #1, count is 0
...
In Child #1, count is 1
...
Main thread ending.

Thread-Klassenerweiterung:

class MyThread extends Thread {
    MyThread(String name) {
        super(name);
    }

    public void run() {
        System.out.println(getName() + " starting.");
        try {
            for (int i = 0; i < 10; i++) {
                Thread.sleep(400);
                System.out.println("In " + getName() + ", count is " + i);
            }
        } catch (InterruptedException e) {
            System.out.println(getName() + " interrupted.");
        }
        System.out.println(getName() + " terminating.");
    }
}

public class UseThreads {
    public static void main(String[] args) {
        System.out.println("Main thread starting.");

        MyThread thread = new MyThread("Child #1");
        thread.start();

        for (int i = 0; i < 50; i++) {
            System.out.print(".");
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                System.out.println("Main thread interrupted.");
            }
        }
        System.out.println("Main thread ending.");
    }
}

Hinweis: Die Methode „sleep()“ bewirkt, dass der Thread, in dem sie aufgerufen wird, die Ausführung anhält
für den angegebenen Zeitraum von Millisekunden.

Büchertisch
Cap Programação com várias threads

Das obige ist der detaillierte Inhalt vonCap-Programmierung mit mehreren Threads. 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