Heim >Java >JavaErste Schritte >So implementieren Sie Multithreading in Java

So implementieren Sie Multithreading in Java

王林
王林nach vorne
2020-09-30 15:56:352087Durchsuche

So implementieren Sie Multithreading in Java

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 Java

Das 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Was ist Rekursion?Nächster Artikel:Was ist Rekursion?