ホームページ >Java >&#&チュートリアル >Javaでマルチスレッドを実装する方法

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

WBOY
WBOY転載
2023-04-19 20:16:05662ブラウズ

1. スレッドを作成するラムダ式

ラムダ フォームを使用してスレッド タスク クラスをインスタンス化し、スレッド オブジェクトを作成し、スレッド タスク クラスをコンストラクター パラメーターとして渡します。

package com.kingh.thread.create;
 
/**
 * 创建线程with lambda
 *
 * @author <a href="https://blog.csdn.net/king_kgh>Kingh</a>
 * @version 1.0
 * @date 2019/3/18 10:04
 */
public class CreateThreadDemo5_Lambda {
 
    public static void main(String[] args) throws Exception {
        // 使用lambda的形式实例化线程任务类
        Runnable task = () -> {
            while (true) {
                // 输出线程的名字
                printThreadInfo();
            }
        };
 
        // 创建线程对象,并将线程任务类作为构造方法参数传入
        new Thread(task).start();
 
        // 主线程的任务,为了演示多个线程一起执行
        while (true) {
            printThreadInfo();
            Thread.sleep(1000);
        }
    }
 
    /**
     * 输出当前线程的信息
     */
    private static void printThreadInfo() {
        System.out.println("当前运行的线程名为: " + Thread.currentThread().getName());
        try {
            Thread.sleep(1000);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

2. ExecutorService、Callable、Future を使用して結果を返すマルチスレッドを実装する

値を返すことができるタスクは Callable インターフェイスである必要があります。 、戻り値はありません。タスクは Runnable インターフェイスである必要があります。 Callable タスクを実行した後、Future オブジェクトを取得できます。get を呼び出すことで、Callable タスクによって返されたオブジェクトを取得できます。その後、スレッド プール インターフェイス ExecutorService と組み合わせることで、結果を返す伝説的なマルチスレッドを実装できます。

rree

以上がJavaでマルチスレッドを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。