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 回答