Heim Java javaLernprogramm Java: Definieren und starten Sie Threads innerhalb von Methoden mithilfe anonymer innerer Klassen

Java: Definieren und starten Sie Threads innerhalb von Methoden mithilfe anonymer innerer Klassen

Dec 15, 2016 pm 01:17 PM
anonyme innere Klasse

Der folgende Code zeigt, wie man einen Thread über eine anonyme innere Klasse in einer Methode definiert, seine run()-Methode überschreibt und dann den Thread direkt startet.

Solcher Code kann verwendet werden, um eine Nebenaufgabe auszuführen, indem ein neuer Thread innerhalb einer Klasse gestartet wird. Im Allgemeinen sind solche Aufgaben nicht der Hauptentwurfsinhalt der Klasse.

package com.zj.concurrency;
 
public class StartFromMethod {
    private Thread t;
    private int number;
    private int count = 1;
 
    public StartFromMethod(int number) {
       this.number = number;
    }
 
    public void runTask() {
       if (t == null) {
           t = new Thread() {
              public void run() {
                  while (true) {
                     System.out.println("Thread-" + number + " run " + count
                            + " time(s)");
                     if (++count == 3)
                         return;
                  }
              }
           };
           t.start();
       }
    }
 
    public static void main(String[] args) {
       for (int i = 0; i < 5; i++)
           new StartFromMethod(i).runTask();
    }
}
Nach dem Login kopieren

Ergebnis:

Thread-0 läuft 1 Mal(e)

Thread-0 läuft 2 Mal(e)

Thread-1 1 Mal ausführen

Thread-1 2 Mal ausführen

Thread-2 1 Mal ausführen

Thread-2 2 Mal ausführen ) )

Thread-3 läuft 1 Mal(e)

Thread-3 läuft 2 Mal(e)

Thread-4 läuft 1 Mal(e)

Thread-4 läuft 2 Mal(e)


Für mehr Java: Verwenden Sie anonyme innere Klassen, um Threads innerhalb von Methoden zu definieren und zu starten, beachten Sie bitte die chinesische PHP-Website für verwandte Artikel!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie löst die anonyme innere Java-Klasse das Problem des Speicherverlusts? Wie löst die anonyme innere Java-Klasse das Problem des Speicherverlusts? May 01, 2024 pm 10:30 PM

Anonyme innere Klassen können Speicherlecks verursachen. Das Problem besteht darin, dass sie einen Verweis auf die äußere Klasse enthalten und so verhindern, dass die äußere Klasse durch Müll gesammelt wird. Zu den Lösungen gehören: 1. Verwenden Sie schwache Referenzen, wenn die externe Klasse nicht mehr von einer starken Referenz gehalten wird. 2. Verwenden Sie weiche Referenzen Benötigt Speicher während der Garbage Collection. Nur dann wird das Soft-Referenzobjekt recycelt. Im tatsächlichen Kampf, beispielsweise in Android-Anwendungen, kann das durch anonyme innere Klassen verursachte Speicherleckproblem durch die Verwendung schwacher Referenzen gelöst werden, sodass die anonyme innere Klasse recycelt werden kann, wenn der Listener nicht benötigt wird.

Was sind die Entwurfsmuster für anonyme innere Klassen in Java? Was sind die Entwurfsmuster für anonyme innere Klassen in Java? May 02, 2024 pm 04:42 PM

Anonyme innere Klassen sind spezielle innere Klassen in Java, die keinen expliziten Namen haben und durch den neuen Ausdruck erstellt werden. Sie werden hauptsächlich zum Implementieren bestimmter Schnittstellen oder zum Erweitern abstrakter Klassen verwendet und unmittelbar nach der Erstellung verwendet. Zu den gängigen Entwurfsmustern für anonyme innere Klassen gehören: Adaptermuster: Konvertiert eine Schnittstelle in eine andere Schnittstelle. Strategiemuster: Algorithmen definieren und ersetzen. Beobachtermuster: Beobachter registrieren und Ereignisse verarbeiten. Dies ist in praktischen Anwendungen sehr nützlich, z. B. beim Sortieren eines TreeSet nach Zeichenfolgenlänge, beim Erstellen anonymer Threads usw.

Was sind die Vorteile anonymer innerer Klassen in Java? Was sind die Vorteile anonymer innerer Klassen in Java? Apr 30, 2024 am 11:39 AM

Anonyme innere Klassen werden in Java als spezielle innere Klassen verwendet, die die Unterklassenbildung, die Vereinfachung von Code und die Verarbeitung von Ereignissen (z. B. Schaltflächenklicks) erleichtern. Zu den praktischen Fällen gehören: Ereignisbehandlung: Verwenden Sie anonyme innere Klassen, um Klickereignis-Listener für Schaltflächen hinzuzufügen. Datentransformation: Sortieren Sie Sammlungen mithilfe der Collections.sort-Methode und einer anonymen inneren Klasse als Komparator.

In welchen Szenarien sind anonyme innere Java-Klassen nicht für den Einsatz geeignet? In welchen Szenarien sind anonyme innere Java-Klassen nicht für den Einsatz geeignet? May 03, 2024 pm 05:42 PM

Anonyme innere Klassen eignen sich nicht für den Einsatz, wenn auf private Mitglieder zugegriffen werden muss, mehrere Instanzen erforderlich sind, Vererbung erforderlich ist oder auf generische Typen zugegriffen werden muss

Was sind die häufigsten Fehler bei anonymen inneren Klassen in Java? Was sind die häufigsten Fehler bei anonymen inneren Klassen in Java? May 02, 2024 am 09:03 AM

Fehler bei der Verwendung anonymer innerer Klassen: Zugriff auf eine Variable außerhalb des Gültigkeitsbereichs durch Abfangen einer nicht deklarierten Ausnahme in einer nicht threadsicheren Umgebung

Wie kann die Leistung anonymer innerer Java-Klassen optimiert werden? Wie kann die Leistung anonymer innerer Java-Klassen optimiert werden? May 02, 2024 am 08:48 AM

Das Leistungsproblem anonymer innerer Klassen besteht darin, dass sie bei jeder Verwendung neu erstellt werden. Dies kann durch die folgenden Strategien optimiert werden: 1. Anonyme innere Klassen in lokalen Variablen speichern. 2. Nicht statische innere Klassen verwenden Ausdrücke. Praxistests zeigen, dass die Optimierung des Lambda-Ausdrucks die beste Wirkung erzielt.

Was ist der Lebenszyklus anonymer innerer Java-Klassen? Was ist der Lebenszyklus anonymer innerer Java-Klassen? May 01, 2024 pm 04:06 PM

Die Lebensdauer einer anonymen inneren Klasse wird durch ihren Geltungsbereich bestimmt: Methodenlokale innere Klasse: Nur innerhalb des Geltungsbereichs der Methode gültig, die sie erstellt hat. Konstruktor der inneren Klasse: An die Instanz der äußeren Klasse gebunden und freigegeben, wenn die Instanz der äußeren Klasse freigegeben wird. Statische innere Klassen: werden gleichzeitig mit externen Klassen geladen und entladen.

Wie werden anonyme innere Java-Klassen auf Threads angewendet? Wie werden anonyme innere Java-Klassen auf Threads angewendet? May 02, 2024 pm 01:57 PM

Anonyme innere Klassen vereinfachen die Erstellung von Multithread-Code, machen eine Benennung überflüssig und ermöglichen die sofortige Definition und Verwendung von Thread-Klassen. Der Hauptvorteil besteht in der Vereinfachung des Codes, die Einschränkung besteht jedoch darin, dass er nicht erweitert werden kann. Verwenden Sie diese Option, wenn Sie schnell einen oder zwei Threads erstellen müssen. Halten Sie den Code kurz. Wenn eine komplexere Logik erforderlich ist, sollte eine separate Klassendatei erstellt werden.

See all articles