예를 들어 고유 한 유형으로 잠금을 구현할 수 있습니까?
나는 로버트 하비가 제공 한 링크를 따랐고 나는 빠른 읽기를했다. 나는 모든 것을 이해했다고 말할 수 없으며 , 내가 이해 한다고 생각 하는 것을 실제로 이해 했다는 높은 수준의 자신감을 가지고 있다고 말할 수는 없지만 외부 고유성과 참조 불변성의 모든 요점은 잠금이 필요하지 않은 것으로 보입니다.
멀티 스레딩에 대한 현대적인 접근 방식은 숙련 된 프로그래머 만 잠금을 사용하는 코드를 작성할 수 있고 코드에도 버그가 발생하기 때문에 잠금을 피하려고합니다. 잠금 코드가 실제로 테스트 할 수 없다는 사실을 덧붙이는 경우, 코드를 잠금 해제하는 것이 바람직하지 않은 방법이라는 것이 분명해야하며 잠금 해제를 목표로하는 모든 솔루션이 가장 유망합니다.
잠금을 피하는 방법은 메시지 전달을 사용하는 것이므로 메시지를 변경할 수 없어야합니다. 대략, 언뜻 보면, 참조 불변성은 불변 유형을 실제로 구성하지 않고도 불변성을 보장 할 수있는 기술인 것으로 보이며 외부 고유성은 엄격한 불변성 요구 사항을 로컬에서 완화하는 데 도움이되는 기술인 것으로 보입니다.
스레드간에 변경 가능한 데이터를 공유하기 위해 고유성 유형을 사용할 수 있습니까?
이 논문은 명확하게 언급하지 않았지만, 내가 이해에서, 객체의 외부 고유의 클러스터 (정말 때문에 어떻게 든 스레드 안전 ? 어떻게 이 객체의 클러스터, 수단에 단 하나의 외부 참조가 존재한다는 것을 보장) 그 이러한 참조를받는 스레드는 다른 스레드가 다른 참조를 가질 수 없기 때문에 다른 스레드도이를 변경할 수 있다는 걱정없이 참조 된 오브젝트를 변경 가능한 것으로 처리 할 수 있습니다. 그런 이론적 구성이 어떻게 구현되고 시행 될 수 있는지 궁금합니다.
고유 한 유형을 사용하여 동기화 기본 요소 (예 : 뮤텍스)를 빌드 할 수 있습니까? 아니면 메시지 전달이 필요합니까?
다시 말하지만, 외부 적으로 고유 한 유형과 참조 불변성은 잠금, 뮤텍스 등을 불필요하게 렌더링하는 것을 의미합니다. 메시지 전달이 좋은 방법으로 보입니다.