Java でマルチスレッドを実装する方法: (推奨: java ビデオ チュートリアル)
方法 1: Thread クラスを継承する
1. Thread クラスを継承するサブクラスを作成します
2. Thread クラスの run() を書き換えます: run() でこのスレッドによって実行される操作を宣言します
3. Thread のサブクラスのオブジェクトを作成します
4. このオブジェクトの start() を呼び出します: ① スレッドを開始します ② 現在のスレッドの run() メソッドを呼び出します
方法 2: Runnable インターフェイスの実装方法
1. Runnable インターフェイスを実装するクラスを作成します
2. Runnable インターフェイスに抽象メソッドを実装します: run(): will create スレッドによって実行される操作はこのメソッドで宣言されます
3. Runnable インターフェイス実装クラスのオブジェクトを作成します
4. このオブジェクトをThread クラスのコンストラクターにパラメータを指定して、Thread クラス Object
5 を作成します。Thread クラスで start() を呼び出します: ① スレッドを開始します。 ② スレッドの run() を呼び出します --->Call Runnable インターフェース実装クラスの run()
#次の 2 つのメソッドが jdk1.5 で追加されました。
方法 3: Callable インターフェイスを実装する
手順:
1. Runnable を使用する場合と比較して、Callable はより強力です
2. run() メソッドと比較して、実装された call() メソッドは値を返すことができます
#3. このメソッドは例外をスローすることができます#4. 汎用の戻り値をサポート
# 5. 返された結果の取得など、FutureTask クラスを使用する必要があります Future インターフェイスは、特定の Runnable タスクおよび Callable タスクの実行結果のキャンセル、完了したかどうかのクエリ、結果の取得などを行うことができます。 FutureTask は、Future インターフェイスの唯一の実装クラスであり、Runnable インターフェイスと Future インターフェイスも実装します。 Runnable としてスレッドによって実行でき、Callable の戻り値を取得する Future としても使用できます。方法 4: スレッド プールを使用します
手順:
事前に複数のスレッドを作成し、スレッド プールに入れ、使用するときに直接取得し、使用後はプールに戻します。頻繁な作成と破壊を回避し、再利用を実現します。生活における公共交通機関と同じです。 利点:1. 応答速度の向上 (新しいスレッドの作成時間の短縮)#2. リソース消費の削減 (スレッド プール内のスレッドを再利用するため、スレッドを再利用する必要がありません)毎回作成)
3. スレッド管理を容易にする
例:
import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.FutureTask; import java.util.concurrent.ThreadPoolExecutor; //方式一 class ThreadTest extends Thread { @Override public void run() { for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } } } // 方式二 class RunnableTest implements Runnable { @Override public void run() { for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } } } // 方式三 class CallableTest implements Callable<Integer> { @Override public Integer call() throws Exception { int sum = 0; for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); sum += i; } return sum; } } // 方式四 class ThreadPool implements Runnable { @Override public void run() { for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } } } public class Test { public static void main(String[] args) { // 继承Thread ThreadTest thread = new ThreadTest(); thread.setName("方式一"); thread.start(); // 实现Runnable RunnableTest runnableTest = new RunnableTest(); Thread thread2 = new Thread(runnableTest, "方式二"); thread2.start(); // 实现Callable<> 有返回值 CallableTest callableTest = new CallableTest(); FutureTask<Integer> futureTask = new FutureTask<>(callableTest); new Thread(futureTask, "方式三").start(); // 返回值 try { Integer integer = futureTask.get(); System.out.println("返回值(sum):" + integer); } catch (Exception e) { e.printStackTrace(); } // 线程池 ExecutorService pool = Executors.newFixedThreadPool(10); ThreadPoolExecutor executor = (ThreadPoolExecutor) pool; /* * 可以做一些操作: * corePoolSize:核心池的大小 * maximumPoolSize:最大线程数 * keepAliveTime:线程没任务时最多保持多长时间后会终止 */ executor.setCorePoolSize(5); // 开启线程 executor.execute(new ThreadPool()); executor.execute(new ThreadPool()); executor.execute(new ThreadPool()); executor.execute(new ThreadPool()); } }
Java の詳細については、
Java 基本チュートリアル列に注目してください。 。
以上がJavaマルチスレッドを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、さまざまなJava Garbage Collectionアルゴリズム(シリアル、パラレル、CMS、G1、ZGC)、そのパフォーマンスへの影響、および大きなヒープを持つアプリケーションの適合性について説明します。

この記事では、Java Virtual Machine(JVM)について説明し、さまざまなプラットフォームでJavaプログラムを実行する際の役割について詳しく説明しています。 JVMの内部プロセス、主要コンポーネント、メモリ管理、ガベージコレクション、およびパフォーマンスの最適化について説明します

Javaのナショーンエンジンは、Javaアプリ内でJavaScriptスクリプトを可能にします。重要な手順には、ナショーンのセットアップ、スクリプトの管理、パフォーマンスの最適化が含まれます。主な問題には、ナショーンのdeprecによるセキュリティ、記憶管理、将来の互換性が含まれます

Javaのリソースでの試行は、ファイルストリームやデータベース接続などのリソースを自動的に閉じることでリソース管理を簡素化し、コードの読みやすさと保守性を向上させます。

Java Enumsは、固定された値のセットを表し、カスタムメソッドとコンストラクターを介してタイプの安全性、読みやすさ、および追加の機能を提供します。それらはコード組織を強化し、効率的なバリューハンドリングのためにスイッチステートメントで使用できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
