Multithreading – Erstellung von Threads
So erstellen Sie Threads
Lassen Sie uns zusammenfassen, wie Sie Multi-Threads erstellen. Als nächstes werden wir ausführlich über die Erstellungsmethoden sprechen 🎜>
1. Erben Sie die Thread-Klasse und überschreiben Sie dann die run()-Methode 2. Implementieren Sie die Runnable-Schnittstelle und überschreiben Sie dann die run()-Methode 3. Implementieren die aufrufbare Schnittstelle und überschreiben Sie dann den Aufruf1. Erben Sie die Thread-Klasse und überschreiben Sie die Ausführungsmethode
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();
}
}
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(); } }
Hier sind die drei Möglichkeiten, Thread-Namen zu erstellen: (1) Fügen Sie den Namen direkt nach den Klammern hinzu
(2) Rufen Sie setName auf () zum Festlegen des Namens
(3) Wenn kein Name festgelegt ist, verwendet das System standardmäßig Thread-(0,1,2....)
3. Implementieren Sie die Callable-Schnittstelle und überschreiben Sie die Call
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. Generieren Sie zuerst das Callable-Objekt 2. Generieren Sie das FutureTask-Objekt
3. Erstellen Sie eine Thread-Übertragung. Geben Sie das FutureTask-Objekt ein
4. Der von der Callable-Schnittstelle empfangene Rückgabewert ist die get()-Methode in Future
Vergleich von drei Möglichkeiten zum Erstellen von Threads
1 . Die Vererbung der Thread-Klasse hat die Einschränkung der Einzelvererbung. Relativ gesehen ist die Implementierung der Runnable-Schnittstelle flexibler, und die Thread-Klasse selbst implementiert auch die Runnable-Schnittstelle, um dies zu unterstützen echte Thread-Klasse 2. Durch die Implementierung der Runnable-Schnittstelle kann das Konzept der Programmfreigabe besser realisiert werden
3. Die Callable-Schnittstelle wird verwendet, wenn ein Rückgabewert erforderlich ist
Wenn es offensichtlich ist Fehler im obigen Inhalt, bitte weisen Sie darauf hin, ich wäre Ihnen dankbar. Danke!
Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website:
JAVA-Video-TutorialDas obige ist der detaillierte Inhalt vonMultithreading – Erstellung von Threads. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



8-Kern bedeutet, dass die CPU über 8 physische Kerne verfügt, und 16-Thread bedeutet, dass die CPU bis zu 16 Threads gleichzeitig ausführen kann. Die Anzahl der Kerne und Threads sind wichtige Leistungsindikatoren einer Computer-CPU. Je höher die Anzahl der Kerne der CPU, desto höher die Anzahl der Threads und desto günstiger die gleichzeitige Ausführung mehrerer Programme. weil die Anzahl der Threads der Anzahl entspricht, die die CPU zu einem bestimmten Zeitpunkt gleichzeitig ausführen kann. Die Anzahl der parallel zu verarbeitenden Aufgaben. Multithreading kann die superskalare Verarbeitung mit großen Problemen außerhalb der Reihenfolge maximieren, die Auslastung von Prozessor-Rechnerkomponenten verbessern und Verzögerungen beim Speicherzugriff verringern, die durch Datenkorrelation oder Cache-Fehler verursacht werden.

Um Thread-Aushunger zu vermeiden, können Sie faire Sperren verwenden, um eine faire Zuweisung von Ressourcen sicherzustellen, oder Thread-Prioritäten festlegen. Um die Prioritätsumkehr zu lösen, können Sie die Prioritätsvererbung verwenden, um die Priorität des Threads, der die Ressource enthält, vorübergehend zu erhöhen, oder die Sperrenerhöhung verwenden, um die Priorität des Threads zu erhöhen, der die Ressource benötigt.

Zu den Thread-Beendigungs- und Abbruchmechanismen in C++ gehören: Thread-Beendigung: std::thread::join() blockiert den aktuellen Thread, bis der Ziel-Thread die Ausführung abschließt. std::thread::detach() trennt den Ziel-Thread von der Thread-Verwaltung. Thread-Abbruch: std::thread::request_termination() fordert den Ziel-Thread auf, die Ausführung zu beenden; std::thread::get_id() erhält die Ziel-Thread-ID und kann mit std::terminate() verwendet werden, um das Ziel sofort zu beenden Faden. Im tatsächlichen Kampf ermöglicht request_termination() dem Thread, den Zeitpunkt der Beendigung zu bestimmen, und join() stellt dies in der Hauptzeile sicher

Unterschiede: 1. Ein Thread kann mehrere Coroutinen haben, und ein Prozess kann auch mehrere Coroutinen allein haben. 2. Threads sind ein Synchronisationsmechanismus, während Coroutinen asynchron sind. 3. Coroutinen können den Status des letzten Aufrufs beibehalten. Threads funktionieren nicht 4. Threads sind präventiv, während Coroutinen nicht präemptiv sind. 5. Threads sind geteilte CPU-Ressourcen und Coroutinen erfordern Threads zum Hosten und Ausführen.

„Thread“ ist die kleinste Einheit des Befehlsflusses, wenn ein Programm ausgeführt wird. Ein Prozess bezieht sich auf ein Programm mit bestimmten unabhängigen Funktionen. Ein Thread ist Teil des Prozesses und beschreibt den Ausführungsstatus des Befehlsflusses. Der Thread ist die kleinste Einheit des Befehlsausführungsflusses im Prozess und die Grundeinheit der CPU-Planung. Ein Thread ist ein Ausführungsprozess einer Aufgabe (ein Programmsegment); ein Thread belegt keinen Speicherplatz, er ist im Speicherbereich des Prozesses enthalten. Innerhalb desselben Prozesses teilen sich mehrere Threads die Ressourcen des Prozesses; ein Prozess verfügt über mindestens einen Thread.

Bei der Entwicklung von JavaFX-Anwendungen treten häufig Fehler auf, bei denen der JavaFX-Thread hängen bleibt. Solche Fehler sind unterschiedlich schwerwiegend und können die Stabilität und Leistung des Programms beeinträchtigen. Um den normalen Betrieb des Programms sicherzustellen, müssen wir die Ursachen und Lösungen von JavaFX-Thread-Steckfehlern verstehen und wissen, wie wir verhindern können, dass dieser Fehler auftritt. 1. Die Ursache für den Fehler „JavaFX-Thread steckt fest“ JavaFX ist ein Multithread-UI-Anwendungsframework, das es Programmen ermöglicht, über einen längeren Zeitraum in Hintergrundthreads ausgeführt zu werden.

Prozesse und Threads in der Go-Sprache: Prozess: Eine unabhängig laufende Programminstanz mit eigenen Ressourcen und eigenem Adressraum. Thread: Eine Ausführungseinheit innerhalb eines Prozesses, die Prozessressourcen und Adressraum gemeinsam nutzt. Merkmale: Prozess: hoher Overhead, gute Isolation, unabhängige Planung. Threads: geringer Overhead, gemeinsame Ressourcen, interne Planung. Praxisfall: Prozess: Isolieren lang laufender Aufgaben. Threads: Verarbeiten Sie große Datenmengen gleichzeitig.

Microsoft wird sein leistungsstarkes KI-gestütztes Copilot-Tool offenbar nicht als exklusives Feature der neuen App behalten. Jetzt hat das Unternehmen gerade Pläne angekündigt, Copilot in die klassische Outlook-App für Windows zu integrieren. Wie auf der 365 Roadmap-Website veröffentlicht, werden die Vorschauen im März nächsten Jahres beginnen und bis März weltweit auf Desktops im aktuellen Kanal verfügbar sein. Copilot ist ein Produktivitätstool, das große Sprachmodelle (LLMs) verwendet, um Benutzer bei Aufgaben wie dem Schreiben von E-Mails, dem Zusammenfassen von Dokumenten und dem Übersetzen von Sprachen zu unterstützen. Eine seiner Hauptfunktionen ist die Möglichkeit, E-Mails zusammenzufassen
