gpt4 book ai didi

java - 多线程 Java Rest 服务

转载 作者:行者123 更新时间:2023-12-01 04:51:59 24 4
gpt4 key购买 nike

我是 Java 新手,正在使用 CXF JAXRS 库构建 Java Rest 服务。

我希望服务能够一次使用多个 http 请求。我该如何实现这一目标?

我需要在 Web 容器中托管服务吗?或者即使我在没有(最好)Web 容器的情况下运行服务,我也可以实现多线程吗?

谢谢

最佳答案

您必须修改应用程序的架构以一次处理多个请求,同时保存传入的请求以供将来处理。

实现主从模式,这将解决您的问题。您可以按照以下步骤来实现此模式(它是一种方法而不是算法):

1) 根据您的意愿使用 Java 5 的 Executor Framework 或 Java 7 的 Fork Join。假设我们正在使用 java 5。

2) 使用共享队列临时保存数据(比如某个工作对象)以供将来使用。我使用了线程安全的BlockingQueue。

3) 创建一个主类,它将启动和停止多个工作实例(n)。当收到新的请求时,master会将数据放入工作对象中,并将该工作对象添加到队列中。当将work对象添加到队列时,master会在该队列上调用notifyAll方法(以唤醒所有等待的worker)。

4) 创建一个工作线程类,它将监听该队列(通过在其构造函数中引用共享队列)。从队列中一一取出工作对象,直到队列为空。当队列为空时将工作人员置于等待状态。当Master对该队列调用notifyAll方法时,该队列将再次上线。

如果您需要任何其他说明,请告诉我。

执行器框架(不是主 worker 模式)的一个简单示例是 here

关于java - 多线程 Java Rest 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14803391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com