우리는 Scala, Play 프레임 워크 및 MongoDB (ReactiveMongo를 드라이버로 사용)로 웹 응용 프로그램을 구축하고 있습니다. 애플리케이션 아키텍처는 엔드 - 투 - 엔드 블로킹이 아닙니다.향후 코드에서 동기화/잠금 사용
우리 코드의 일부에서는 스칼라의 파서 연결자, 스칼라의 반사 등과 같은 스레드로부터 안전하지 않은 라이브러리에 액세스해야합니다. 우리는 현재 이러한 호출을 synchronized
블록으로 묶고 있습니다. 나는 두 가지 질문이 있습니다
- 미래 Y 코드
synchronized
을 이용할 때는 어떤 개는이 있습니까? synchronized
대신 잠금 (예 :ReentrantLock
)을 사용하는 것이 성능 및 사용성 측면에서 더 좋습니까?
"미래 코드" – fge
@fge가 의미하는 바를 이해하는 데 어려움이 있습니다. 코드는 '미래'를 많이 사용합니다. 나는 그것이 컨텍스트 (Play, Reactive * 등)에서 충분히 명확하다고 생각했지만, 그렇지 않은 것 같아 사과합니다. – missingfaktor
기본 실행 컨텍스트로 차단 작업을 수행하면 안됩니다. [이 답변] (http://stackoverflow.com/a/16834855/406435) 유용 할 수 있습니다. – senia