#(推奨チュートリアル:
スレッドはプロセスに依存するため、最初にプロセスを作成する必要があります
そして、プロセスはシステムによって作成されるため、システム関数を呼び出してプロセスを作成する必要があります
ただし、Java はシステム関数を直接呼び出すことができないため、マルチスレッド プログラムを直接実装する方法はありません。
# ただし、Java は C/C で記述されたプログラムを直接呼び出して、マルチスレッド プログラムを実装できます。スレッド プログラムC/C はシステム関数を呼び出してプロセスを作成し、次に Java は次のようなものを呼び出して、使用するクラスを提供するためです。マルチスレッドを実装できます#それでは、Java が提供するクラスとは何でしょうか?
Thread
API を見ると、マルチスレッドを実装するには 2 つの方法があることがわかります
方法 1: Thread クラスを継承する
手順:
A: カスタム クラス MyThread は Thread クラスを継承します。
B: MyThread クラスの run() をオーバーライドします。
run() メソッドがあるのはなぜですか?
クラスのすべてのコードをスレッドで実行する必要があるわけではありません
現時点では、複数のスレッドで実行できるコードを区別するために、Java では run() メソッドが提供されています。スレッド クラス
スレッドによって実行されるコードを含めるために使用されます
#C: オブジェクトの作成#D: スレッドの開始
##例: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(); } }
Java の入門
以上がJavaでマルチスレッドを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。