本文主要是介绍java多线程-使用Future获得多线程的返回值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我们在多线程中很多时候会需要获得线程的返回值,但是多线程又不像普通方法一样,可以直接获得返回值,那么我们应该怎么获得返回值呢?
一、使用Future获得Callable的返回值
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;public class TestFuture {public static void main(String[] args) throws Exception {ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();Future<String> submit = newCachedThreadPool.submit(new TaskCallable());System.out.println("1.主线程开始");String result = submit.get();System.out.println("2.result:" + result);}
}class TaskCallable implements Callable<String> {@Overridepublic String call() throws Exception {System.out.println("3.正在执行任务,需要等待五秒时间,执行任务开始");Thread.sleep(5000);System.out.println("4.正在执行任务,需要等待五秒时间,执行任务结束");return "黄浩轩";}
}
执行结果如下:
这篇关于java多线程-使用Future获得多线程的返回值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!