我有一个关于 System 类如何工作的问题。
假设有一个服务器为连接到它的每个客户端创建一个线程,并且一个线程在某个时候调用 System.out.println(message)。哪台计算机会打印出该消息?它是服务器的计算机还是客户端计算机?哪一方创建线程有关系吗?
我有一个关于 System 类如何工作的问题。
假设有一个服务器为连接到它的每个客户端创建一个线程,并且一个线程在某个时候调用 System.out.println(message)。哪台计算机会打印出该消息?它是服务器的计算机还是客户端计算机?哪一方创建线程有关系吗?
哪台计算机会打印出该消息?它是服务器的计算机还是客户端计算机?
它将在服务器上。
哪一方创建线程有关系吗?
客户端不可能在服务器上创建线程(反之亦然)。服务器可以创建新线程来响应来自客户端的连接,但这完全不同。
简单地说:如果代码在服务器上运行,则在服务器上输出,除非有人通过存储在本地线程存储中的套接字System.out
覆盖正常行为setOut
并实现输出。PrintStream
他们不会,这将是一件很疯狂的事情。:-)
服务器上的线程与与之对话的某些客户端上的线程之间没有关系。服务器上的 System.out 与碰巧与之交谈的任何客户端上的任何内容之间都没有关系。向 System.out 发送内容的效果(除非您将其重定向)与程序是客户端、服务器还是衣架完全无关。
每个Thread
都在服务器的机器上创建并在服务器的机器上运行。呼叫将System.out
打印在服务器的机器上。
服务器将打印出来;System.out.println 不受调用它的服务器-客户端的外部条件的影响。