我正在尋找一段時間,無法弄清楚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