컨테이너 관리 동시성을 사용하는 데 사용되는 싱글 톤 세션 bean과 주석에 대해 읽었습니다. 나는 단순히 '동기화 된'키워드를 사용하는 것에 비해 이점이 없다는 것을 알기 때문에 내가 빠뜨린 중요한 것이 무엇인지 의심 스럽다. , Rubinger & 버크에 의해 도서 "Enterprise JavaBeans 3.1"에서 오라일리이 예제를 고려하십시오EJB 3.1 컨테이너 관리 동시성 대 동기화
@javax.ejb.Lock(javax.ejb.LockType.READ)
public String concurrentReadOnlyMethod(){...}
@javax.ejb.Lock(javax.ejb.LockType.WRITE)
public void allowOnlyOneWriteAtATimeMethod(String stringToSet){...}
방법 읽기 경우 모든 toghether 주석을 생략하고, 쓰기의 경우에 synchronized
키워드를 사용하는 것보다 더 나은이있다 , 이렇게 :
public String concurrentReadOnlyMethod(){...}
public synchronized void allowOnlyOneWriteAtATimeMethod(String stringToSet){...}
내가 올바르게 이해한다면, 다음과 같이 비공식적으로 표현할 수 있습니다. 위의 두 가지 방법을 모두 포함하는 하나의 클래스와 컨테이너 관리 동시성의 의미는 "쓰기가 진행되지 않는 한 동시 읽기가 허용됩니다"입니다. 대비되는 예제의 의미는 "동시 읽기는 허용되며, 쓰기가 진행되는 동안에도 동시에 쓰레드는 한 번에 하나만 쓰게됩니다"라고합니다. –
예, 그걸 꽤 잘 요약 해줍니다. –
EJB 3.1에서이 읽기/쓰기 잠금의 의미에 대한 참조를 제공 할 수 있습니까? 나는 사양에서도 찾을 수 없었다. – illEatYourPuppies