深圳公交查询,望其项背,往事只能回味-耳洞经济,经济拐角,全面分析

admin 2019-05-16 阅读:323

难度

初级

学习时间

20分钟

合适人群

零根底

开发言语

Java

开发环境

  • JDK v11
  • IntelliJIDEA v2018.3

友谊提示

  • 本教育归于系列教育,内容具有连贯性,本章运用到的内容之前教育中都有具体解说。
  • 本章内容针对零根底或根底较差的同学比较友爱,或许关于有根底的同学来说很简单,期望咱们能够依据自己的实际情况挑选继续看完或等候看下一篇文章。谢谢咱们的体谅!

1.温故知新

前面在《“全栈2019”Java线程进阶第三章:线程工厂ThreadFactory介绍》一章中介绍了线程工厂ThreadFactory

《“全栈2019”Java线程进阶第四章:线程池中默许的线程工厂》一章中介绍了线程池中默许的线程工厂

《“全栈2019”Java线程进阶第五章:提交使命execute(Runnable r)》一章中介绍了向线程池提交使命execute(Runnable r)

《“全栈2019”Java线程进阶第六章:提交使命submit(Runnable r)》一章中介绍了向线程池提交使命submit(Runnable task)

《“全栈2019”Java线程进阶第七章:提交使命submit(Runnable r,T)》一章中介绍了向线程池提交使命submit(Runnable task, T result)

本章介绍向线程池提交使命submit(Callable task)

2.向线程池提交有回来值使命

之前介绍的都是向线程池提交Runnable使命,即无回来值的使命。

现在介绍向线程池提交Callable使命,即有回来值使命。

假如让线程履行完1+1的值后回来成果,Runnable是无法做到的,而Callable能够做到。

下面,咱们来看看怎么运用submit(Callable task)办法。

3.提交Callable使命submit(Callable task)办法

submit(Callable task)办法:

参数

task:Callable使命。

反常

throws RejectedExecutionException:假如使命被回绝。

throws NullPointerException:假如使命为null。

回来值

Future表明一个异步计算成果,在未来某一时间会得到成果。

示例

下面演示submit(Callable task)办法。

首要,创立需求提交给线程池履行的Callable使命,这儿需求明确使命成果的类型(即使命履行完回来的成果的类型,如1+1成果为2,是Integer类型),在call()办法中写上需求线程履行的具体使命代码:

然后,创立履行使命的线程池:

接着,运用submit(Callable task)办法提交有回来值的Callable使命:

然后,获取使命履行成果:

最终,封闭线程池:

比如书写结束。

运转程序,履行成果:

从运转成果来看,契合预期。

咱们能够很清楚地看到,线程在履行完1+1后,将成果成功回来。

注意事项

履行Callable使命时,一定要明确使命成果的类型!

最终,期望咱们能够把这个比如照着写一遍,然后再自己默写一遍,便利今后碰到相似的面试题能够轻松应对。

祝咱们编码愉快!

GitHub

本章程序GitHub地址:https://github.com/gorhaf/Java2019/tree/master/Thread/ThreadPool/ExecutorService

总结

  • submit(Callable task)办法的作用是向线程池中提交Callable使命。
  • 履行Callable使命时,一定要明确使命成果的类型。

至此,Java中提交使命submit(Callable task)相关内容解说先告一段落,更多内容请继续重视。

答疑

假如咱们有问题或想了解更多前沿技术,请在下方留言或谈论,我会为咱们回答。

上一章

“全栈2019”Java线程进阶第七章:提交使命submit(Runnable r,T)

下一章

“全栈2019”Java线程进阶第九章:封闭线程池shutdown()

学习小组

参加同步学习小组,一同沟通与前进。

方法一:欢迎参加“全栈工程师”编程圈子,与到圈友一同沟通评论。

(此处已增加圈子卡片,请到今天头条客户端检查)

方法二:重视头条号Gorhaf,私信“Java学习小组”。

方法三:重视大众号Gorhaf,回复“Java学习小组”。

全栈工程师学习方案

重视咱们,参加“全栈工程师学习方案”。

版权声明

原创不易,未经答应不得转载!