Javaでマルチスレッドを実装する方法

王林
リリース: 2020-09-30 15:56:35
転載
1956 人が閲覧しました

Javaでマルチスレッドを実装する方法

#要件: マルチスレッド プログラムを実装したいです


#(推奨チュートリアル:

java コース

)実装方法:

スレッドはプロセスに依存するため、最初にプロセスを作成する必要があります

そして、プロセスはシステムによって作成されるため、システム関数を呼び出してプロセスを作成する必要があります

ただし、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!