java - affable bean 购物车中同步方法的使用

标签 java jakarta-ee netbeans synchronized

查看 netbeans affable bean 教程。为什么我们需要在这里使用同步方法?

public synchronized int getNumberOfItems() {

        numberOfItems = 0;

        for (ShoppingCartItem scItem : items) {

            numberOfItems += scItem.getQuantity();
        }

        return numberOfItems;
    }


    public synchronized double getSubtotal() {

        double amount = 0;

        for (ShoppingCartItem scItem : items) {

            Product product = (Product) scItem.getProduct();
            amount += (scItem.getQuantity() * product.getPrice().doubleValue());
        }

        return amount;
    }

最佳答案

看起来与 ShoppingCartItems 管理相关的每个方法都是同步的。当然是为了防止并发访问 items 列表 ( List<ShoppingCartItem> items; )。

如果没有同步,您可能有 1+ 个线程访问“读取”方法,例如 getSubtotal ()items名单正在公开更新中synchronized void addItem(Product product)由另一个线程。

来源可以找到here

关于java - affable bean 购物车中同步方法的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9884148/

相关文章:

java - 无法执行目标org.apache.maven.plugins :maven-failsafe-plugin:2. 12:验证(验证)

c++ - NetBeans配置

java - 在 Java Akka 中的 sibling 之间发送消息

java - 一个支持 bean 应该属于多少个 View ?

java - WebLogic 集群 - 每周重新启动所有应用程序服务器实例?

java - 使用带有 GUI 的 Netbeans 进行编程

java - (ClassName)$.class 文件在类文件夹中? (网 bean )

java - 如何在浏览器中自动添加(异常(exception))SSL 证书

java - JSON 在 Java 中使用 GSON 解码带有 HashMap 成员的自定义类

java - 最大堆大小无效 : -Xmx512m