recherche

Maison  >  Questions et réponses  >  le corps du texte

java中,分别使用 Thread 与 Executor执行任务,为什么前者不需要显式的退出,而后者需要shutdown ?

  1. 如果不适用shutdown ,使用 executor执行任务时,就不能退出,也就不能键入控制台命令?线程与控制台之间有什么关系?

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

高洛峰高洛峰2886 Il y a quelques jours437

répondre à tous(1)je répondrai

  • 伊谢尔伦

    伊谢尔伦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.

    répondre
    0
  • Annulerrépondre