java中,分别使用 Thread 与 Executor执行任务,为什么前者不需要显式的退出,而后者需要shutdown ?
高洛峰
高洛峰 2017-04-17 17:38:36
0
1
370
  1. 如果不适用shutdown ,使用 executor执行任务时,就不能退出,也就不能键入控制台命令?线程与控制台之间有什么关系?

  2. 另由 控制台 返回,想到 java 的main ( ) 函数由于void,不需要写return 语句, 而 C 语言 main ( ) 函数由于 为int ,需要使用return ()? java 为什么可以这样设置,是出于什么样的机制?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
伊谢尔伦

ThreadExecutor不可并论,Thread是属于Java的基础结构,代表的就是程序中实际的线程,其run方法就是线程执行过程。Executor是在Thread上做了封装,引入了线程池和线程复用的概念以提高运行效率和节约资源。Executor控制着线程持续运行,简单的说就是Threadrun方法里有一个无限循环while(true) {},所以Executor所持有的Thread会一直运行不会停止,需要使用shutdown方法去让Executor告知它下属的Thread跳出循环以停止线程。当然,Thread并非没有类似shutdown的方法,很多程序需要线程持续运行,都会带有循环,这时候在继承封装Thread的时候,都需要自行实现线程退出的方法。ThreadExecutor不可并论,Thread是属于Java的基础结构,代表的就是程序中实际的线程,其run方法就是线程执行过程。Executor是在Thread上做了封装,引入了线程池和线程复用的概念以提高运行效率和节约资源。Executor控制着线程持续运行,简单的说就是Threadrun方法里有一个无限循环while(true) {},所以Executor所持有的Thread会一直运行不会停止,需要使用shutdown方法去让Executor告知它下属的Thread跳出循环以停止线程。当然,Thread并非没有类似shutdown的方法,很多程序需要线程持续运行,都会带有循环,这时候在继承封装Thread的时候,都需要自行实现线程退出的方法。

关于Javamain返回void的问题我想并没有什么特别好解释的,C里的main比较古老,那时候的程序还需要依赖返回值来告诉使用者程序是否正常运行,而Java有健全的异常机制,程序也不直接基础控制台,所以即使要有返回值,也应该是Java Runtime来做,而不是Java

关于Javamain返回void的问题我想并没有什么特别好解释的,C里的main比较古老,那时候的程序还需要依赖返回值来告诉使用者程序是否正常运行,而Java有健全的异常机制,程序也不直接基础控制台,所以即使要有返回值,也应该是Java Runtime来做,而不是Java程序来做。🎜
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!