gpt4 book ai didi

java - Tomcat 中的 Servlet 并发/同步?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:51:52 25 4
gpt4 key购买 nike

是否有推荐的方法来同步碰巧竞争相同资源(如文件或非 ACID 的 MongoDB 等数据库)的 Tomcat Servlet 实例?

我熟悉线程同步以确保两个 Java 线程不会同时访问同一个 Java 对象,但不熟悉存在于 JRE 之外的对象。

编辑:我只有 1 个 Tomcat 服务器在运行。这是否意味着不同的 JVM,我不确定(我假设它是相同的 JVM,但可能是不同的线程)。


编辑:特定用例(但我问的是一般性问题):

Tomcat 服务器充当文件存储,将原始文件放入目录,并使用 MongoDB 存储元数据。除了并发问题外,这是一个非常简单的概念。如果有两个并发请求来存储同一个文件,或者同时管理同一个对象上的元数据,我需要一种方法来解决这个问题,但我不确定如何解决。我想最简单的方法是以某种方式序列化/排队请求。有没有办法在 Tomcat 中实现队列?

最佳答案

通常,您的各种 servlet 将在同一个 JVM 中运行,如果不是,您应该能够配置您的 servlet 运行器,所以就是这种情况。因此,您可以安排他们查看一些中央共享资源管理器。

然后对于实际的 gubbinry,如果普通的旧同步不合适,请查看 Semaphore 的示例类(链接是我不久前写的教程/示例的一部分,以防它有帮助),它允许您处理资源“池”。

关于java - Tomcat 中的 Servlet 并发/同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1528214/

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