java - ejb - 调用同一实例的方法时的单例锁定模式?

标签 java singleton ejb

这是我的单例类:

import javax.ejb.Lock;
import javax.ejb.LockType;
import javax.ejb.Singleton;


@Singleton
public class TestSingletons implements TestSingletonsRemote{

    @Lock(LockType.READ)
    @Override
    public void foo(int id) {
        bar(id);
    }


    private void bar(int id){
        // do stuff
    }

}

方法foo 有一个LockType.READ,所以它可以被并发访问。 foo 实际上除了调用类 bar 的私有(private)方法之外什么都不做,它没有被注释,所以默认情况下它应该有一个 LockType.WRITE 锁模式。

正如您可能从上述场景中猜到的那样,问题是: 对 foo 的调用实际上是并发的吗?

最佳答案

您的bar 方法是私有(private)的,不是业务方法。

默认LockType.WRITE仅适用于业务方法。

关于java - ejb - 调用同一实例的方法时的单例锁定模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32438665/

相关文章:

java - 如何获取并按空格分割输入的多个字符串行,然后将它们添加到Java中的arrayList?

haskell - 如何使用单例库中的 toSing?

java - Scala 脚本引擎创建另一个单例实例

java - "javax.ejb.NoSuchEJBException: Could not find stateful bean: "

java - 在EJB模块中的Restful服务中创建Session

java - Hadoop 定界符不适用于独立机器

java - 我应该针对接口(interface)还是抽象基类编程?这句话到底是什么意思?

java - 不能在使用接口(interface)的类中使用 EJB

java - 如何通过 JNDI 检索 LDAP 密码

java - @Singleton @Startup 完全异步?