0

Systemクラスがどのように機能するかについて質問があります。

接続するクライアントごとにスレッドを作成するサーバーがあり、ある時点でスレッドがSystem.out.println(message)を呼び出すとします。そのメッセージが印刷されるのはどのコンピューターですか?サーバーのコンピューターですか、それともクライアントコンピューターですか。どちら側がスレッドを作成したかは重要ですか?

4

4 に答える 4

2

そのメッセージが印刷されるのはどのコンピューターですか?サーバーのコンピューターですか、それともクライアントコンピューターですか。

サーバー上にあります。

どちら側がスレッドを作成したかは重要ですか?

クライアントがサーバー上にスレッドを作成することは不可能です(逆もまた同様です)。サーバーはクライアントからの接続に応じて新しいスレッドを作成できますが、それはまったく異なります。

簡単に言えば、コードがサーバーで実行されている場合、誰かがローカルスレッドストレージに格納されているソケットを介して出力するSystem.out通常の動作をオーバーライドしsetOutて実装しない限り、サーバーに出力します。PrintStreamそして、彼らはそうしません、それはやるのが難しいことでしょう。:-)

于 2012-05-28T21:42:38.913 に答える
1

サーバー上のスレッドと、サーバーと通信する一部のクライアント上のスレッドとの間に関係はありません。サーバー上のSystem.outと、サーバーと通信するクライアント上の何かとの間に関係はありません。System.outに何かを送信する効果は、(リダイレクトしない限り)プログラムがクライアント、サーバー、またはハンガーのいずれであるかとはまったく関係ありません。

于 2012-05-28T21:44:00.743 に答える
0

それぞれThreadがサーバーのマシン上で作成され、サーバーのマシン上で実行されます。System.out呼び出しはサーバーのマシンに出力されます。

于 2012-05-28T21:42:16.963 に答える
0

サーバーが印刷されます。System.out.printlnは、呼び出し元のサーバークライアントの外部条件の影響を受けません。

于 2012-05-28T21:42:33.690 に答える