Thread Future模式

Posted pickknow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thread Future模式相关的知识,希望对你有一定的参考价值。

多线程不管是extends Thread 还是 implements Runnable 都是要重写run 方法来实现,这两种方式子线程都没有返回值。

如果要实现主线程对子线程的监听,让子线程有返回值,可以用implememts Callable<T> 方式:

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class App6 
    public static void main(String[] args) throws Exception 
        ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();
        Future<String> submit = newCachedThreadPool.submit(new TaskCallable());
        String result = submit.get(); //获取返回值
        System.out.println(result);
    



class TaskCallable implements Callable<String>
    @Override
    public String call() throws Exception 
        System.out.println(Thread.currentThread().getName());
        return "Hello World";
    

 

以上是关于Thread Future模式的主要内容,如果未能解决你的问题,请参考以下文章

Callable的Future模式

Java深入学习:Future模式

Callable与Future模式

并发编程之Callable异步,Future模式

JDK1.8 FutureTask源码解读(Future模式)

多线程-Thread,Runnable,Callable,Future,RunnableFuture,FutureTask