2013-08-16 1 views
0

서버 쪽 메서드를 동기화하여 한 번에 하나의 클라이언트에서만 호출 할 수 있습니까?GWT 서버 쪽 메서드는 동시에 한 클라이언트에서만 호출해야합니다.

서버 측 메서드에서 키워드 "synchronized"를 사용하여이 작업을 시도했습니다. 그러나 동시에 둘 이상의 클라이언트가 동시에 메서드를 호출 할 수 있습니다.

EDIT : 동기화 된 메서드를 포함하는 클래스는 스레드로부터 안전 한 싱글 톤입니다.

미리 감사드립니다. the docs에서

+0

당신은 80 년대로 되돌아 가려고하고 있습니다.) 어쨌든이 일을하기 위해, 서비스 방법 안에있는 동안 '서빙'표시기를 가질 수 있습니다. 그리고 나가있을 때 다음 클라이언트로 계속할 수 있습니다. 그래서 대기열이 필요할 수도 있습니다 ... –

답변

0

:

멀티 스레딩 및 동기화 : GWT가 자동으로 동기화 된 키워드를 수용하면서, 그것이 실제 효과가 없습니다 그래서 자바 스크립트 인터프리터는 단일 스레드입니다. Object.wait(), Object.notify() 및 Object.notifyAll()을 비롯하여 동기화 관련 라이브러리 메서드를 사용할 수 없습니다. 컴파일러는 synchronized 키워드를 무시하지만 객체의 관련 동기화 메소드가 호출되면 코드 컴파일을 거부합니다.