Java 多线程
我正在做一个客户机-服务器应用程序,其中有多个客户机,它们由单个服务器控制。。。。 在这里,我捕获所有客户端的屏幕,我希望他们发送到ToWord服务器…所以它需要多线程。。。。Java 多线程,java,multithreading,Java,Multithreading,我正在做一个客户机-服务器应用程序,其中有多个客户机,它们由单个服务器控制。。。。 在这里,我捕获所有客户端的屏幕,我希望他们发送到ToWord服务器…所以它需要多线程。。。。 那么,有谁能告诉我如何在我的应用程序中使用多线程…?您可能希望签出线程池来处理输入连接: 阅读java.util.concurrent,尤其是Callable接口,它比早期java版本中的Runnable接口要好,因为它允许您从调用方法返回值(与运行方法相反)。线程池也很有用-它们由Executor类创建为Execut
那么,有谁能告诉我如何在我的应用程序中使用多线程…?您可能希望签出线程池来处理输入连接:
阅读
java.util.concurrent
,尤其是Callable
接口,它比早期java版本中的Runnable
接口要好,因为它允许您从调用
方法返回值(与运行
方法相反)。线程池也很有用-它们由Executor
类创建为ExecutorServices
,您可以限制线程的数量,从而限制服务器端的负载。当然,JavaDoc中的例子是一个简单的服务器,它接受来自客户机的连接,因此它可能适用于您的情况(尽管没有非常清楚地描述)
否则,线程是一个非常大的主题,在这里的帖子中真的无法回答。你可以买一本关于Java线程的书,但我不知道哪本是最好的。正如你所描述的,这显然不是一个多线程问题
- 如果这是一个客户机驱动的场景(即,客户机选择何时发送屏幕),您可以让他们在服务器中调用一个方法
- 如果它是服务器驱动的,那么可以使用Observer模式
无论哪种方式,如果问题如您所述,您都可以避免多线程 理想情况下,您应该为自己的服务器实现使用web服务器或应用程序服务器,这些服务器已经可以为您处理此问题 如果这是某种自定义服务器,那么您应该检查线程池,正如前面提到的。如果工作线程执行的工作不需要线程安全(即,只是一个简单的性能并发调度问题),那么这可能就足够了
如果您需要深入了解线程安全编程,那么您需要做更多的研究,阅读更多的书籍,最好还需要一些指导。这些应用程序是基于Swing的吗?它们之间是什么样的通信?具体在哪里需要多线程在您的客户机中,因为您的客户机不仅发送这些图像,而且还有一些其他功能—在您的服务器中,因为您认为多线程可以提高接收图像的性能—在您的服务器中,因为您的服务器提供了一些其他功能—您有GUI和用户交互吗?Swing/SWT?我不想听起来粗鲁,但如果你问这样的问题,你真的不是实现服务器端线程模型的人。线程的主题和使用远不是简单的,充满了陷阱,而且永远不会像你期望的那样工作。帮你自己一个忙,下载一个应用服务器,这个问题和你将面临的其他问题已经解决了。嗨。。。我已经在一个客户端和服务器上完成了屏幕捕获和控制…现在我想让它成为多客户端应用程序…其中有一个服务器可以捕获多个客户端的屏幕,并从服务器进行控制…那么你能告诉我…怎么可能…我可以使用多线程。。。?如何使用?你能告诉我如何使用多线程多客户端服务器应用程序吗…?我读过的关于Java并发的最好的书是Brian Goetz()的《Java并发实践》