我正在寻找一段时间,无法弄清楚CDI容器如何对待@ApplicationScoped
bean。我的意思是 - 如果你有类Session
,如:Java CDI @ApplicationScoped同步/异步访问
@ApplicationScoped
public class Session {
Map<User,Session> map = new HashMap<>();
public void add(User user,Session session) {
sessions.put(user,session);
}
public Session getSession(User user) {
return list.get(user);
}
}
方法addSession(Session session, User user)
被称为每次用户登录假设我们要时时用户的会话恢复 - 我们可以做到这一点通过电话getSession(User user)
方法。
的问题是:
如果有人称之为是把
Session
和User
到地图中。其他电话暂停,直到第一个电话会议结束? (例如,我们有额外的,simutaneous 4个通话 - 2getSession
方法和2add
方法)如果某些呼叫试图
getSession
。其他同时通话也会暂停,直至完成?请问
SynchronizedList
和/或AtomicInteger
(假设我们有整数列表,因为这个具体情况只是一个例子)是否改变了它?
该问题的主题是:@ApplicationScoped
真的能“冻结”我的应用程序吗?因为我觉得它是一个真正的瓶颈,因为我不能像EJB那样使用@ConcurencyManagement
锁。
是的,我想通了。但我想确认一下。你没有瓶颈,但也需要处理并发访问。 – Ziemo 2014-10-27 18:21:40