잠시 동안 찾고 있는데 CDI 컨테이너가 @ApplicationScoped
bean을 처리하는 방법을 알 수 없습니다. 내 말은 - 당신은 같은 클래스 Session
이있는 경우 :Java CDI @ApplicationScoped sync/async 액세스
@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
퍼팅됩니다. 첫 번째 퍼팅 콜이 끝날 때까지 다른 통화가 일시 중지됩니까? 일부 전화가getSession
를 시도하는 경우- (2
getSession
방법이add
하는 방법에 대한 예를 들어 우리는 추가, 동시 신호 4 개 통화를). 다른 동시 통화도 완료 될 때까지 일시 중지됩니까?SynchronizedList
및/또는AtomicInteger
(특정 상황이 예일 뿐이므로 정수 목록이 있다고 가정)이 변경되었습니다.
그 질문의 주요 주제는 다음과 같습니다. @ApplicationScoped
은 내 응용 프로그램을 실제로 "정지시킬 수 있습니까? 왜냐하면 EJB에서와 같이 @ConcurencyManagement
잠금을 사용할 수 없으므로 실제 병목 현상이라고 생각하기 때문입니다.
예, 알아 냈습니다. 그러나 나는 그것을 확인하고 싶었다. 병목 현상이 없으며 동시에 액세스를 처리해야합니다. – Ziemo