싱글 톤 범위에서 서비스를 정의하는 경우 둘 이상의 사용자가 동시에 액세스하려고하면 (즉, 컨트롤러에 종속성이 주입 된 경우) 어떻게 될까요? ? 충돌이 발생해야합니까? 또는 IoC 컨테이너가 첫 번째 호출이 완료 될 때까지 이후 호출을 보류합니까? 그렇다면 대용량 애플리케이션의 성능이 저하 될 것입니다. 어떤 사람이 나에게 정확한 답을 줄 수 있니?동시에 액세스 할 때 Singleton 인스턴스가 여러 번 액세스하는 경우
내가 기억할 수있는 것처럼, 싱글 톤이 아닌 경우 IoC 컨테이너는 요청 수를 기반으로 거의 인스턴스를 풀링하지 않습니다. 어떤 사람이 그것을 확인할 수 있습니까?
답장을 보내 주셔서 감사합니다. 싱글 톤 클래스를 안전하게하는 가장 좋은 방법은 무엇입니까? 나는 그것이 성능면에서 너무 비싸기 때문에 블록을 동기화하는 것이 좋지 않을 것이라고 생각한다. – Brolinuk
@Brolinuk 때로는 동기화 된 블록이 필요할 때가 있습니다. 가끔은 그렇지 않습니다. 자세한 내용은 [Java Concurrency in Practice] (http://www.javaconcurrencyinpractice.com/)를 참조하십시오. 기본적으로 : 변경 가능한 상태가없는 경우 대개 스레드로부터 안전합니다. 그렇게하면 변경 가능한 상태에 대한 액세스를 동기화하는 방법이 필요합니다. 또한 [관련 SO 질문] (http://stackoverflow.com/questions/1237980/java-5-concurrency-book-recommendations) –