내 지식에 따라 싱글 톤 객체는 스레드 안전하지 않으며 세션 팩토리 싱글 톤 객체는 스레드 안전합니다. 어떻게 이런 일이 일어나는지 설명하십시오.차이점 싱글 톤 객체와 sessionfactory 싱글 톤 객체 사이
답변
세션 팩토리 객체도 singleton
디자인 패턴을 사용하여 구현됩니다.
싱글 톤 디자인 패턴은 thread safe
으로 만들 수 있습니다.
그리고 그들은 세션 팩토리에 대해 스레드 안전성이있는 싱글 톤을 구현했습니다.
우리가 singleton
을 구현할 때 스레드 안전성이 필요한지 여부를 확인해야하며 이에 따라 구현해야합니다.
싱글 톤 패턴은 디자인 패턴에서 내 블로그에 싱글의 다양한 구현을 참조도 스레드 안전도 스레드 안전하지 그 자체를. 특정 구현을 살펴 봐야합니다. 중요한 질문은 상태를 관리합니까?
그렇다면 하나 이상의 스레드가 동시에 상태를 변경할 수 없도록해야합니다. 이것은 전역 변수가 스레드 안전과 관련하여 문제가되는 것과 동일한 문제입니다. 그러나이 안전을 보장하는 메커니즘이 있습니다. 하나는 상호 배제라고합니다. 동일한 변수를 동시에 수정하는 두 스레드의 이벤트는 문제가있는 이벤트이므로 더 많은 것을 알고 있어야합니다. 변수를 순차적으로 수정하는 두 개의 스레드처럼, 질문은 모두 응답 수입니다.
일반적인 상호 배타적 인 이벤트와 java 컨텍스트의 구체적인 설명은 각각 here (Mutually exclusive events) 및 here (Oracle concurrency guide)입니다. 전역 변수는 here으로 설명됩니다. Stateless 및 stateful은 concurrency, parallelism and thread-safety과 관련된 좋은 용어입니다. 위로 질문에
: 캔이 여러 스레드간에 자유롭게 공유되고 있지만 팩토리 은 일반적으로 어떤 상태를 소개하지 않습니다. 팩토리에서 생성 된 인스턴스는 대부분 상태 저장이므로 스레드로부터 안전하게 만든 후에는 스레드간에 공유해야합니다.
중요 사항 : 하지만 여기에 오해하지 마십시오. 항상 싱글 톤 구현을 확인하는 것을 잊지 마십시오! 자바에서는 주석을 작성하여 조사를 문서화하고 특정 코드 요소를 스레드로부터 안전하다고 표시 할 수 있습니다. 이러한 동작을 문서화하기 위해 일반적으로 사용 가능한 주석을 이미 정의한 패키지가 있으며, org.apache.http.annotation을 살펴보십시오. API를 사용할 때 그러한 힌트가 있는지 문서를 검사하는 것이 좋습니다.
- 1. 정적 싱글 톤 객체와
- 2. 싱글 톤 생성자 질문
- 3. 싱글 톤 연결 + 싱글 톤 준비 문
- 4. 싱글 톤 디자인 문제 : (싱글 톤 클래스의 두 객체 만들기)
- 5. 싱글 톤으로 묶인 싱글 톤 또는 비 싱글 톤
- 6. JavaScript의 싱글 톤 객체 이해
- 7. ColdFusion 싱글 톤 객체 풀
- 8. iphone 싱글 톤 객체 동기화
- 9. ViewController의 싱글 톤 객체 만들기
- 10. 싱글 톤 패턴 : 멀티 톤?
- 11. 싱글 톤 및 DbSimple
- 12. 싱글 톤 UIView 액세스?
- 13. 내가 싱글 톤 클래스가
- 14. 네임 스페이스없이 싱글 톤 몸체를 싱글 톤 몸체로 참조하는 방법은?
- 15. 싱글 톤 배율
- 16. Log4perl 싱글 톤 사용
- 17. 싱글 톤 패턴, 개인 메소드 및 싱글 톤 모듈
- 18. 스프링 싱글 톤 대 싱글 톤 디자인 패턴 - 클래스 로더
- 19. 내가 싱글 톤 패턴을 구현하는 클래스를 싱글 톤 패턴
- 20. 단검 2 싱글 톤 구성 요소 싱글 톤 의존형
- 21. 싱글 톤 문제
- 22. 플렉스의 싱글 톤 클래스
- 23. 싱글 톤 - 유용하다
- 24. ApplicationDelegate 싱글 톤 아이폰
- 25. 싱글 톤 방법의 차이
- 26. 클러스터 환경의 싱글 톤
- 27. C++ 퀴즈 - 싱글 톤
- 28. 싱글 톤 소멸자
- 29. 싱글 톤 구현의 차이
- 30. 싱글 톤 사용