0

DI (Dependency Injection) 용 Microsoft Unity를 사용하고 있습니다. 내 수업은 DI를 원한다는 것을 제외하고는 기본적으로 정적이지만 (코딩이나 호출 규칙은 아니지만), Unity와 다른 Unity 클래스를 자동으로 결정하는 생성자를 사용합니다.Unity "ContainerControlled"싱글 톤 및 멀티 스레드 메서드 호출

이것은 단일 패턴이므로 여러 스레드가 동시에 동일한 코드 블록을 실행할 수 있습니까?

즉,이 전 int를 반환하고, 입력, 2 개의 int로 취하는 추가 방법을 가지고 있다고 가정 해 봅시다 ...

는 다중 스레드가이 같은 시간에, 같은 단일 개체에 메서드를 추가 호출 할 수 있습니다 ? 또는 동일한 인스턴스이기 때문에 스레드가 호출 대기를 블록합니까?

다른 방법으로 말해서 정적 메서드를 호출하는 메서드와 단일 인스턴스 메서드를 호출하는 메서드간에 차이가 있습니까?

답변

0

는 차이가 없다 (I 스레드 안전을하셔야합니다 싱글 인스턴스 메소드 내에서 사용되는 모든 공유 데이터를 알고있다). 스레드 안정성은 보호해야하는 공유 상태이있을 때만 중요합니다. 앞에서 설명한 간단한 메서드 추가 작업 - 호출 스택의 모든 관련 컨텍스트를 보호해야하므로 멀티 스레드 환경에서 안전하게 사용할 수 있습니다.

기능적 영역과 비 기능적 영역에서 인스턴스 메소드 호출과 정적 메소드 호출의 차이점은 물론 있습니다. 정적 메소드는 인스턴스 메소드보다 무시 무시한 속도로 간주되지만 다형성 소프트웨어 설계에서는 효과적으로 사용할 수 없습니다. (적어도 C#에서는 아님)

+0

따라서 동일한 인스턴스 메소드를 호출하는 다중 스레드에 대한 블로킹이 없으므로, 같은 물체에서 동시에, 올바른? – Novox

+0

수정. 차단하지 않으려는 경우가 아니면 차단 안 함,이 경우 잠금 문을 사용합니다. – Roman