84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
如果不适用shutdown ,使用 executor执行任务时,就不能退出,也就不能键入控制台命令?线程与控制台之间有什么关系?
另由 控制台 返回,想到 java 的main ( ) 函数由于void,不需要写return 语句, 而 C 语言 main ( ) 函数由于 为int ,需要使用return ()? java 为什么可以这样设置,是出于什么样的机制?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
Thread和Executor不可并论,Thread是属于Java的基础结构,代表的就是程序中实际的线程,其run方法就是线程执行过程。Executor是在Thread上做了封装,引入了线程池和线程复用的概念以提高运行效率和节约资源。Executor控制着线程持续运行,简单的说就是Thread的run方法里有一个无限循环while(true) {},所以Executor所持有的Thread会一直运行不会停止,需要使用shutdown方法去让Executor告知它下属的Thread跳出循环以停止线程。当然,Thread并非没有类似shutdown的方法,很多程序需要线程持续运行,都会带有循环,这时候在继承封装Thread的时候,都需要自行实现线程退出的方法。Thread和Executor不可并论,Thread是属于Java的基础结构,代表的就是程序中实际的线程,其run方法就是线程执行过程。Executor是在Thread上做了封装,引入了线程池和线程复用的概念以提高运行效率和节约资源。Executor控制着线程持续运行,简单的说就是Thread的run方法里有一个无限循环while(true) {},所以Executor所持有的Thread会一直运行不会停止,需要使用shutdown方法去让Executor告知它下属的Thread跳出循环以停止线程。当然,Thread并非没有类似shutdown的方法,很多程序需要线程持续运行,都会带有循环,这时候在继承封装Thread的时候,都需要自行实现线程退出的方法。
Thread
Executor
Java
run
while(true) {}
shutdown
关于Java的main返回void的问题我想并没有什么特别好解释的,C里的main比较古老,那时候的程序还需要依赖返回值来告诉使用者程序是否正常运行,而Java有健全的异常机制,程序也不直接基础控制台,所以即使要有返回值,也应该是Java Runtime来做,而不是Java
main
void
C
Java Runtime
Thread
和Executor
不可并论,Thread
是属于Java
的基础结构,代表的就是程序中实际的线程,其run
方法就是线程执行过程。Executor
是在Thread
上做了封装,引入了线程池和线程复用的概念以提高运行效率和节约资源。Executor
控制着线程持续运行,简单的说就是Thread
的run
方法里有一个无限循环while(true) {}
,所以Executor
所持有的Thread
会一直运行不会停止,需要使用shutdown
方法去让Executor
告知它下属的Thread
跳出循环以停止线程。当然,Thread
并非没有类似shutdown
的方法,很多程序需要线程持续运行,都会带有循环,这时候在继承封装Thread
的时候,都需要自行实现线程退出的方法。Thread
和Executor
不可并论,Thread
是属于Java
的基础结构,代表的就是程序中实际的线程,其run
方法就是线程执行过程。Executor
是在Thread
上做了封装,引入了线程池和线程复用的概念以提高运行效率和节约资源。Executor
控制着线程持续运行,简单的说就是Thread
的run
方法里有一个无限循环while(true) {}
,所以Executor
所持有的Thread
会一直运行不会停止,需要使用shutdown
方法去让Executor
告知它下属的Thread
跳出循环以停止线程。当然,Thread
并非没有类似shutdown
的方法,很多程序需要线程持续运行,都会带有循环,这时候在继承封装Thread
的时候,都需要自行实现线程退出的方法。关于
关于Java
的main
返回void
的问题我想并没有什么特别好解释的,C
里的main
比较古老,那时候的程序还需要依赖返回值来告诉使用者程序是否正常运行,而Java
有健全的异常机制,程序也不直接基础控制台,所以即使要有返回值,也应该是Java Runtime
来做,而不是Java
Java
的main
返回void
的问题我想并没有什么特别好解释的,C
里的main
比较古老,那时候的程序还需要依赖返回值来告诉使用者程序是否正常运行,而Java
有健全的异常机制,程序也不直接基础控制台,所以即使要有返回值,也应该是Java Runtime
来做,而不是Java
程序来做。🎜