Java 多线程学习笔记二十八(总结)

内容来自B站【狂神说Java】多线程详解

package com.example.demo.thread;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class TestNew {

    public static void main(String[] args) {
        new MyThread().start();

        new Thread(new MyRunnable()).start();

        FutureTask<String> task = new FutureTask<>(new MyCallable());
        new Thread(task).start();
        try {
            System.out.println(task.get());
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }

}

// 1. 继承Thread类
class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("继承Thread-->" + Thread.currentThread().getName());
    }
}

// 2. 实现Runnable接口
class MyRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("实现Runnable-->" + Thread.currentThread().getName());
    }
}

// 3. 实现Callable接口
class MyCallable implements Callable<String> {
    @Override
    public String call() throws Exception {
        return "实现Callable-->" + Thread.currentThread().getName();
    }
}

输出

继承Thread-->Thread-0
实现Runnable-->Thread-1
实现Callable-->Thread-2
posted @ 2022-01-02 20:14  君子键  阅读(13)  评论(0)    收藏  举报