Maison > Questions et réponses > le corps du texte
如果不适用shutdown ,使用 executor执行任务时,就不能退出,也就不能键入控制台命令?线程与控制台之间有什么关系?
另由 控制台 返回,想到 java 的main ( ) 函数由于void,不需要写return 语句, 而 C 语言 main ( ) 函数由于 为int ,需要使用return ()? java 为什么可以这样设置,是出于什么样的机制?
伊谢尔伦2017-04-17 17:40:36
Thread
et Executor
sont incommensurables. Thread
est la structure de base appartenant à Java
, qui représente le thread réel du programme, et sa méthode run
est le processus d'exécution du thread. Executor
est encapsulé sur Thread
et introduit les concepts de pool de threads et de réutilisation de threads pour améliorer l'efficacité opérationnelle et économiser les ressources. Executor
contrôle le fonctionnement continu du fil. En termes simples, il y a une boucle infinie Thread
dans la méthode run
de while(true) {}
, donc le Executor
détenu par Thread
continuera à fonctionner et ne s'arrêtera pas. . Vous devez utiliser La méthode shutdown
permet à Executor
de dire à son subordonné Thread
de sortir de la boucle et d'arrêter le thread. Bien sûr, Thread
n'a pas de méthodes similaires à shutdown
De nombreux programmes nécessitent que les threads continuent de s'exécuter et auront des boucles à ce stade, lors de l'héritage et de l'encapsulation de Thread
, vous devez implémenter vous-même la méthode de sortie du thread.
Concernant le problème du retour de Java
main
en void
, je ne pense pas qu'il y ait quelque chose de particulièrement facile à expliquer. Le C
en main
est relativement ancien à cette époque, les programmes sont encore. il fallait s'appuyer sur la valeur de retour pour indiquer à l'utilisateur Cela dépend si le programme fonctionne normalement et Java
dispose d'un mécanisme d'exception sonore, et le programme ne contrôle pas directement la console, donc même s'il y a une valeur de retour, cela doit être fait par Java Runtime
, pas par le Java
programme.