34

PS を実行すると、列の出力の 1 つが TTY になります。これは何を意味するのでしょうか?特に、「??」の値としてはどうですか?「ttys000」と比較?

Java プログラムsortを ProcessBuilder 経由で実行しているため、このプログラムを IDE (IntelliJ) 経由で実行すると、IDE の外部で実行可能な jar として実行する場合よりもプロセスにかかる時間が 5 分の 1 になります。

いずれの場合も、並べ替えの実行中に ps を実行します。唯一の違いは、IDE が ?? の TTY を持つプロセスを作成することです。一方、jar は ttys000 の TTY でプロセスを作成します。

4

2 に答える 2

37

TTYはコンピュータ端末です。のコンテキストでpsは、特定のコマンドを実行したのは端末です。

略語は「TeleTYPEwriter」の略で、ユーザーが初期のコンピューターに接続できるようにするデバイスでした。

あなたの状況に関連して、jar は「ttys000」という名前の仮想端末を作成しますが、IDE は仮想端末に接続してコマンドを実行しません。

于 2011-08-18T20:35:07.790 に答える
5

プロセスは「制御端末」にバインドできます(通常はバインドされます)。この端末は、シリアル回線の最後にあるハードウェアである場合もあれば、今日では仮想ソフトウェアと同等である可能性が非常に高い場合もあります。TTYは親プロセスから継承されます。ほとんどの場合、IDEはTTYとの関連付けを解除し、Javaプログラムの外部で起動すると、シェルのTTYを継承します。

于 2011-08-18T20:40:01.070 に答える