Runnable接口中的run()方法的返回值是void,它做的事情只是纯粹地去执行run()方法中的代码而已;Callable接口中的call()方法是有返回值的,是一个泛型,和Future、FutureTask配合可以用来获取异步执行的结果。

  这其实是很有用的一个特性,因为多线程相比单线程更难、更复杂的一个重要原因就是因为多线程充满着未知性,某条线程是否执行了?某条线程执行了多久?某条线程执行的时候我们期望的数据是否已经赋值完毕?无法得知,我们能做的只是等待这条多线程的任务执行完毕而已。而Callable+Future/FutureTask却可以获取多线程运行的结果,可以在等待时间太长没获取到需要的数据的情况下取消该线程的任务,真的是非常有用。

最新文章

  1. RMQ算法模板
  2. xxxx年度员工岗位技能调查表
  3. 知方可补不足~利用LogParser将IIS日志插入到数据库
  4. C与CPP 在线手册查找
  5. C#窗体全屏功能
  6. JavaScript--DOM修改元素的属性
  7. MSP430F5438点亮led
  8. 《Java程序设计》第5周学习总结
  9. Spring之Enterprise JavaBeans (EJB) integration
  10. 样式布局与 BFC
  11. .NET页面导出Excel
  12. Spring乱码问题解决方案
  13. 堆(heap)、栈(stack)、方法区(method)
  14. Spring学习之路-从放弃到入门
  15. kafka 配置文件注释
  16. [hadoop读书笔记] 第三章 HDFS
  17. SpannableString属性详解
  18. codeforces 782B - The Meeting Place Cannot Be Changed
  19. jQuery之前端国际化jQuery.i18n.properties[转]
  20. php错误:You don't have permission to access / on this server.

热门文章

  1. milvus和faiss安装及其使用教程
  2. sprintf_s() 、sprintf()和printf()区别和用法
  3. 【Redis之疑难解析】(error) READONLY You can't write against a read only slave
  4. 小程序将base64的多张图片,传到tp5后台
  5. Springcloud技术分享
  6. C# 生成chart图表的三种方式
  7. css实现中间横线俩边文字效果
  8. 2017-18-2 B2B实验+扩充
  9. GCC编译选项笔记
  10. 【C语言程序设计】小游戏之俄罗斯方块(一)!适合初学者上手、练手!