如果不适用shutdown ,使用 executor执行任务时,就不能退出,也就不能键入控制台命令?线程与控制台之间有什么关系?
另由 控制台 返回,想到 java 的main ( ) 函数由于void,不需要写return 语句, 而 C 语言 main ( ) 函数由于 为int ,需要使用return ()? java 为什么可以这样设置,是出于什么样的机制?
伊谢尔伦2017-04-17 17:40:36
Thread
と Executor
は矛盾しています。Thread
はプログラム内の実際のスレッドを表す Java
に属する基本構造であり、その run
メソッドはスレッドの実行プロセスです。 Executor
は Thread
上にカプセル化されており、スレッド プールとスレッドの再利用の概念を導入して、操作効率を向上させ、リソースを節約します。 Executor
はスレッドの継続実行を制御します。簡単に言うと、Thread
の run
メソッド内に無限ループ while(true) {}
があるため、Executor
が保持する Thread
は実行され続け、停止しません。 shutdown
メソッドを使用すると、Executor
がその下位の Thread
にループから抜け出してスレッドを停止するように指示できます。もちろん、Thread
には shutdown
のようなメソッドはありません。多くのプログラムでは実行を継続するためにスレッドが必要であり、この時点で Thread
を継承してカプセル化する場合は、スレッド exit メソッドを自分で実装する必要があります。
Java
が main
を返す問題については、void
の C
は、当時はまだ比較的古いプログラムだと思います。ユーザーにプログラムが正常に実行されているかどうかを伝えるには戻り値に依存する必要があり、main
にはサウンド例外メカニズムがあり、プログラムはコンソールを直接制御しないため、戻り値がある場合でも、 Java
プログラムではなく、Java Runtime
によって実行されます。 Java