繁体   English   中英

如何使服务线程安全(restful)

[英]How to make service threadsafe (restful)

使用 Spring Boot,我有一个服务类,它有一个私有字段。 该字段由不同的方法读取和修改。

@Service
...
   private int maxPoints

休息控制器使用该服务。 我担心不同的并行休息消费者会导致不同的线程,并且私有变量不是线程安全的。

用弹簧靴和休息来确保线程安全的最佳方法是什么?

默认情况下,您的服务被实例化为单例,这意味着在您的应用程序生命周期中,您将只有该服务的一个实例。

为了使“maxPoints”线程安全,您需要确保使用“maxPoints”的方法是线程安全的。 最简单的方法是使用“同步”。 Java 中的同步块一次只能执行一个线程。

public synchronized void changeMaxPoints() {
    ...
    // change maxPoints
    ...
}

实现此目的的第二种方法是使用AtomicInteger

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM