検索
ホームページJava&#&チュートリアルJava 7 でスレッド プールを使用してマルチスレッド タスクの戻り結果を処理する方法

Java 7 でスレッド プールを使用してマルチスレッド タスクの戻り結果を処理する方法

Jul 29, 2023 am 10:17 AM
スレッドプールマルチスレッドタスク結果を返す

Java 7 でスレッド プールを使用してマルチスレッド タスクの戻り結果を処理する方法

Java アプリケーションを開発する場合、多くの場合、マルチスレッド タスクを処理してスレッドの戻り結果を取得する必要があります。スレッド プールを使用すると、スレッド リソースをより適切に管理し、マルチスレッド タスクの返された結果を処理できるようになります。この記事では、スレッド プールを使用して Java 7 のマルチスレッド タスクの戻り結果を処理する方法を紹介し、コード例を示します。

スレッド プールは、スレッド リソースを管理および再利用するためのメカニズムです。スレッド プールを使用すると、スレッドを開始するたびに新しいスレッドを作成するのではなく、必要なときにスレッドを作成できます。スレッド プールにより、アプリケーションのパフォーマンスが向上し、スレッドの作成と破棄のオーバーヘッドが削減されます。

Java 7 では、Executors クラスを使用してスレッド プールを作成できます。以下は、スレッド プールを作成するサンプル コードです。

ExecutorService executor = Executors.newFixedThreadPool(10);

上記のコードは、10 個のスレッドを含むスレッド プールを作成します。次に、スレッド プールを使用してマルチスレッド タスクを実行し、スレッドの戻り結果を取得します。

タスクのリストがあり、それぞれが独立したスレッドで実行する必要があり、実行結果が返されるとします。以下はタスク クラスの例です。

public class Task implements Callable<String> {
    private String name;

    public Task(String name) {
        this.name = name;
    }

    @Override
    public String call() throws Exception {
        // 执行任务的代码
        Thread.sleep(1000);
        return "Task " + name + " has been completed";
    }
}

上記のコードでは、Task クラスは Callable インターフェイスを実装し、戻り結果のタイプを として指定します。弦###。 call()メソッドには、実行されるタスクのコードが含まれています。この例では、スレッドは単に 1 秒間スリープして文字列を返します。

次に、スレッド プールを使用してこれらのタスクを実行し、スレッドの戻り結果を取得します。以下は、スレッド プールを使用してタスクを処理するサンプル コードです。

public class Main {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newFixedThreadPool(10);
        
        List<Future<String>> results = new ArrayList<>();
        
        for (int i = 0; i < 10; i++) {
            Task task = new Task("Task " + i);
            results.add(executor.submit(task));
        }
        
        executor.shutdown();
        
        for (Future<String> result : results) {
            try {
                System.out.println(result.get());
            } catch (InterruptedException | ExecutionException e) {
                e.printStackTrace();
            }
        }
    }
}

上記のコードでは、最初にスレッド プールが作成され、次に ## を格納するための

ArrayList が作成されます。 #FutureObjects、これらのオブジェクトはスレッド タスクのステータスと結果を表します。 次に、ループを通じて 10 個の

Task

インスタンスが作成され、スレッド プールに送信され、Future オブジェクトが結果リストに追加されます。 次に、スレッド プールの

shutdown()

メソッドを呼び出して、スレッド プールをシャットダウンします。 最後に、別のループを通じて結果リストを走査し、

Future

オブジェクトの get() メソッドを使用してスレッドの戻り結果を取得し、結果。 上記のコードを実行すると、次のような出力が得られます。

Task 0 has been completed
Task 1 has been completed
Task 2 has been completed
Task 3 has been completed
Task 4 has been completed
Task 5 has been completed
Task 6 has been completed
Task 7 has been completed
Task 8 has been completed
Task 9 has been completed

上記のコードは、スレッド プールを使用してマルチスレッド タスクの返された結果を処理する方法を示しています。スレッド プールを使用すると、スレッド リソースをより適切に管理し、スレッドの戻り結果を簡単に取得できます。

この記事の例では、Java 7 のスレッド プールと関連クラスが使用されていることに注意してください。 Java 8 では、より強力で柔軟なスレッド プールと同時実行ユーティリティ クラスが導入されました。 Java 8 以降で開発している場合は、Java 8 の同時実行ツール クラスを使用して、マルチスレッド タスクの返された結果を処理することをお勧めします。

以上がJava 7 でスレッド プールを使用してマルチスレッド タスクの戻り結果を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Mac版

SublimeText3 Mac版

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