Anforderungen: Wir möchten ein Multithread-Programm implementieren
(empfohlenes Tutorial: Java-Kurs)
Wie man es implementiert:
Da Threads von Prozessen abhängen, sollten wir zuerst einen Prozess erstellen
The Der Prozess wird vom System erstellt, daher sollten wir die Systemfunktion aufrufen, um einen Prozess zu erstellen. Java kann die Systemfunktion jedoch nicht direkt aufrufen, sodass wir keine Möglichkeit haben, ein Multithread-Programm direkt zu implementieren. Java kann dies jedoch direkt Rufen Sie in C/C++ geschriebene Programme auf, um Multithread-Programme zu implementieren
Denn C/C++ ruft Systemfunktionen auf, um Prozesse zu erstellen, und Java ruft dann solche Dinge auf
und stellt dann einige Klassen zur Verfügung, die wir verwenden können. Wir können Multithreading erreichen
Welche Klassen bietet Java also?
Thread
Anhand der API wissen wir, dass es zwei Methoden gibt, um Multithreading zu erreichen
Methode 1: Thread-Klasse erben
Schritte:
A: Die benutzerdefinierte Klasse MyThread erbt die Thread-Klasse
B : Es gibt mehrere Schritte in der MyThread-Klasse. Schreiben Sie run();
Warum handelt es sich um die run()-Methode?
Nicht alle Codes einer Kategorie müssen von Threads ausgeführt werden
Um die Codes zu unterscheiden, die von mehreren Threads ausgeführt werden können, stellt Java derzeit die run()-Methode in der Thread-Klasse bereit
um welche einzuschließen diejenigen werden von Threads ausgeführt. Code
C: Objekt erstellen
D: Thread starten
Beispiel:
package cn.itcast_01; public class 如何实现多线程及其多线程方式1的思路 { public static void main(String[] args) { // 创建线程对象 MyThread my = new MyThread(); //启动线程 my.run(); my.run(); //调用run();方法为什么是单线程呢? //因为run();方法的直接调用其实就相当于普通方法调用,所有你看到的是单线程的效果 //想要看到多线程的效果,就必须说另一个方法:start() //面试题run()和start()的区别 //run():仅仅是封装被线程执行的代码,直接调用依旧是普通方法 //start():首先启动了线程,然后再由JVM去调用该线程的run()方法 MyThread my = new MyThread(); my.start(); my.start();//IllegalThreadStateException:非法的线程状态异常 //为什么呢? //因为这是相当于my线程别调用了两次。而不是两个线程的启动 //创建两个线程 MyThread my1 = new MyThread(); MyThread my2 = new MyThread(); my1.start(); my2.start(); } }
Verwandte Empfehlungen:
Erste Schritte mit JavaDas obige ist der detaillierte Inhalt vonSo implementieren Sie Multithreading in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!