JAVA コア同時実行プログラミング モデルの実践ガイド
JAVA コア同時実行プログラミング モデル実践ガイド
今日のソフトウェア開発分野では、マルチコア プロセッサと分散システムが主流になっています。ハードウェア リソースを最大限に活用するには、並行プログラムを作成して並列処理を実現し、パフォーマンスを向上させる必要があります。主流のプログラミング言語として、JAVA は豊富な同時プログラミング モデルとツールのセットを提供します。この記事では、いくつかの具体的なコード例を通じて JAVA のコア同時プログラミング モデルを深く理解し、これらのモデルを使用して同時プログラミングを実践する方法を学びます。
- スレッドの基本
まず、JAVA の最も基本的な同時プログラミング要素であるスレッドを見てみましょう。 JAVA のスレッドは、java.lang.Thread クラスによって表されます。以下は単純なスレッドの例です。
public class MyThread extends Thread { @Override public void run() { System.out.println("Hello, this is my thread!"); } public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); } }
この例では、Thread を継承するカスタム スレッド クラス MyThread を作成し、run メソッドの Simple message に段落を出力するように run メソッドを書き換えます。 main メソッドでは、MyThread のインスタンスを作成し、start メソッドを通じてスレッドを開始します。
- Runnable インターフェイス
Thread クラスの継承に加えて、java.lang.Runnable インターフェイスを実装してスレッドを作成することもできます。次に、Runnable インターフェイスの使用例を示します。
public class MyRunnable implements Runnable { @Override public void run() { System.out.println("Hello, this is my runnable!"); } public static void main(String[] args) { Thread myThread = new Thread(new MyRunnable()); myThread.start(); } }
この例では、Runnable インターフェイスを実装するカスタム クラス MyRunnable を作成し、run メソッドをオーバーライドしました。 main メソッドでは、Thread オブジェクトを作成し、MyRunnable のインスタンスをパラメータとして渡し、start メソッドを通じてスレッドを開始します。
- スレッド プール
実際の同時プログラミングでは、スレッドの頻繁な作成と破棄が大きなパフォーマンス オーバーヘッドにつながります。したがって、JAVA はスレッドを管理および再利用するためのスレッド プールを提供します。以下は、スレッド プールを使用する簡単な例です。
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadPoolExample { public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(3); for (int i = 0; i < 5; i++) { Runnable worker = new WorkerThread("" + i); executor.execute(worker); } executor.shutdown(); while (!executor.isTerminated()) { } System.out.println("Finished all threads"); } } class WorkerThread implements Runnable { private String message; public WorkerThread(String s) { this.message = s; } public void run() { System.out.println(Thread.currentThread().getName() + " (Start) message = " + message); processMessage(); System.out.println(Thread.currentThread().getName() + " (End)"); } private void processMessage() { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } }
この例では、Executors ツール クラスを使用して、固定サイズ 3 のスレッド プールを作成します。次に、WorkerThread の 5 つのインスタンスを作成し、スレッド プールに送信しました。スレッド プールは、これらのスレッドの実行を管理します。
- ロックと同期
同時プログラミングでは、ロックと同期は非常に重要な概念です。 JAVA は、スレッド間の同期を達成するために役立つ synchronized キーワードと Lock インターフェイスを提供します。次に、synchronized キーワードの使用例を示します。
public class Counter { private int count = 0; public synchronized void increment() { count++; } public synchronized void decrement() { count--; } public synchronized int getCount() { return count; } }
この例では、Counter クラスを作成しました。このクラスでは、increment、decrement、および getCount メソッドはすべて、synchronized キーワードを使用して同期を実現します。これにより、複数のスレッドからのこれらのメソッドの呼び出しが安全になります。
さらに、JAVA の同時実行パッケージは、ReentrantLock や ReadWriteLock などのさまざまなロック実装も提供します。 ReentrantLock の使用例を次に示します。
import java.util.concurrent.locks.ReentrantLock; public class ReentrantLockExample { private final ReentrantLock lock = new ReentrantLock(); public void performTask() { lock.lock(); try { // 执行需要同步的代码块 } finally { lock.unlock(); } } }
この例では、ReentrantLock のインスタンスを作成し、lock と lock を使用してクリティカル セクションをロックおよびロック解除します。この方法は、synchronized キーワードよりも柔軟で、ロックの取得と解放を手動で制御できます。
- 同時コレクション
同時プログラミングでデータを安全に共有するために、JAVA は、ConcurrentHashMap や CopyOnWriteArrayList など、同時実行に安全なコレクション クラスをいくつか提供しています。以下は ConcurrentHashMap の使用例です:
import java.util.concurrent.ConcurrentHashMap; public class ConcurrentMapExample { private ConcurrentHashMap<String, String> map = new ConcurrentHashMap<>(); public void addKeyValuePair(String key, String value) { map.put(key, value); } public String getValueByKey(String key) { return map.get(key); } }
この例では、ConcurrentHashMap インスタンスを作成し、put メソッドと get メソッドを使用して、追加の同期操作を必要とせずに Map 内のデータを安全に操作します。
上記の例を通じて、スレッドの基本、スレッド プール、ロックと同期、同時コレクションなど、JAVA のコア同時プログラミング モデルを深く理解できました。実際のプロジェクトでは、これらの同時プログラミング モデルを合理的に使用すると、プログラムのパフォーマンスと安定性を向上させることができます。この記事が、読者が JAVA での並行プログラミングの知識をよりよく習得し、実際に効率的な並行プログラムを作成するのに役立つことを願っています。
以上がJAVA コア同時実行プログラミング モデルの実践ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Windows 11 のリリースに伴い、Microsoft は VBS (仮想化ベースのセキュリティ) と呼ばれるセキュリティ機能を含む、いくつかの新機能と更新プログラムを導入しました。 VBS は仮想化テクノロジーを利用してオペレーティング システムと機密データを保護し、それによってシステムのセキュリティを向上させます。ただし、一部のユーザーにとって、VBS は必要な機能ではなく、システムのパフォーマンスに影響を与える場合もあります。したがって、この記事では、Windows 11でVBSをオフにする方法を紹介します。

中国語での VSCode セットアップ: 完全ガイド ソフトウェア開発では、Visual Studio Code (略して VSCode) が一般的に使用される統合開発環境です。中国語を使用する開発者は、VSCode を中国語インターフェイスに設定すると、作業効率が向上します。この記事では、VSCode を中国語インターフェイスに設定する方法を詳しく説明し、具体的なコード例を示す完全なガイドを提供します。ステップ 1: 言語パックをダウンロードしてインストールします。VSCode を開いた後、左側の

jQuery 参照方法の詳細説明: クイック スタート ガイド jQuery は、Web サイト開発で広く使用されている人気のある JavaScript ライブラリであり、JavaScript プログラミングを簡素化し、開発者に豊富な機能を提供します。この記事では、jQuery の参照方法を詳しく紹介し、読者がすぐに使い始めるのに役立つ具体的なコード例を示します。 jQuery の導入 まず、HTML ファイルに jQuery ライブラリを導入する必要があります。 CDN リンクを通じて導入することも、ダウンロードすることもできます

Linux オペレーティング システムは技術の継続的な発展に伴い、さまざまな分野で広く使用されています. Deepin Linux システムをタブレットにインストールすることで、より便利に Linux の魅力を体験することができます. タブレットへの Deepin Linux のインストールについて説明します. Linux の具体的な手順について説明します.準備作業 Deepin Linux をタブレットにインストールする前に、いくつかの準備をする必要があります。インストールプロセス中のデータ損失を避けるために、タブレット内の重要なデータをバックアップする必要があります。Deepin Linux のイメージ ファイルをダウンロードして、次の場所に書き込む必要があります。インストールプロセス中に使用するために、USB フラッシュドライブまたは SD カードに保存します。次に、インストールプロセスを開始できます.UディスクまたはSDから起動するようにタブレットを設定する必要があります

Conda 使用ガイド: Python バージョンを簡単にアップグレードします。特定のコード例が必要です。 はじめに: Python の開発プロセス中、新機能を入手したり、既知のバグを修正したりするために、Python バージョンをアップグレードする必要があることがよくあります。ただし、特にプロジェクトや依存パッケージが比較的複雑な場合、Python バージョンを手動でアップグレードするのは面倒な場合があります。幸いなことに、Conda は優れたパッケージ マネージャーおよび環境管理ツールとして、Python バージョンを簡単にアップグレードするのに役立ちます。この記事では使い方を紹介します

Tomcat の文字化けを解決する実践ガイド はじめに: Web 開発では、Tomcat の文字化けの問題によく遭遇します。文字化けが発生すると、データを正しく表示または処理できなくなり、ユーザーエクスペリエンスに不便が生じる可能性があります。したがって、Tomcat の文字化け問題を解決することは非常に重要なステップです。この記事では、Tomcat の文字化けしたコードを解決するための実践的なガイドラインを提供し、この問題に簡単に対処できるようにする具体的なコード例を添付します。 1. Tomcatの文字化けの原因を理解する Tomcatの文字化けの主な原因は文字です。

PHP7 インストール ディレクトリ構成ガイド PHP は、動的 Web ページの開発に使用される一般的なサーバー側スクリプト言語です。現在、PHP の最新バージョンは PHP7 です。これには、多くの新機能とパフォーマンスの最適化が導入されており、多くの Web サイトやアプリケーションで推奨されるバージョンです。 PHP7 をインストールするときは、インストール ディレクトリを正しく構成することが非常に重要です。この記事では、具体的なコード例とともに、PHP7 のインストール ディレクトリを構成するための詳細なガイドを提供します。まず PHP7 をダウンロードするには、PHP 公式 Web サイト (https://www.

Java インストール ガイド: インストール プロセスを段階的にガイドします。特定のコード サンプルが必要です。 はじめに: Java は広く使用されているコンピューター プログラミング言語であり、そのインストールは開発者と一般ユーザーにとっての最初のステップです。この記事では、段階的な手順と具体的なコード例を通じて、インストール プロセスを正常に完了するのに役立つ Java インストール ガイドを提供します。 1. Java インストール パッケージをダウンロードします。まず、Oracle 公式 Web サイトから Java インストール パッケージをダウンロードする必要があります。 Ja の最新バージョンは次の場所にあります。
