阿神2017-04-18 10:10:52
오늘 방금 변경 가능한 객체의 안전한 릴리스와 액세스에 관한 실용적인 동시 프로그래밍을 시청했습니다.
안전한 릴리스:
정적 초기화 함수에서 객체 참조를 초기화합니다.
객체의 참조를 휘발성 또는 AtomicReference에 저장하세요.
객체를 올바르게 구성하는 최종 유형에 대한 객체 참조를 저장하세요
잠금 범위 내에서 개체를 저장하세요.
보안 액세스:
스레드 마감됨
읽기 전용 공유
스레드로부터 안전한 공유, 게시된 개체의 내부 액세스 방법은 스레드로부터 안전하며 외부 동기화가 필요하지 않습니다.
객체를 보호하고, 외부 액세스를 제한하여 변경 가능한 객체를 게시하고, 변경 가능한 객체에 액세스하기 위한 인터페이스를 지정합니다.
static List<String> arrayList = new ArrayList<>();
이것은 안전한 게시의 첫 번째 규칙을 준수했습니다
그러면 안전한 액세스를 보장해야 합니다. 처음 세 가지 상황에서는 목록에 안전하게 액세스할 수 없으므로 다음 경우에만 외부 세계를 제한할 수 있습니다. 객체 게시, 즉 잠금입니다.
PHP中文网2017-04-18 10:10:52
주체의 요청에 따라 구현될 수 있는데, 이러한 요구의 구현은 매우 이상합니다.
으아아아이 방법 외에도 join
과 countdownlatch
을 전달하여 구현할 수도 있습니다. 정말 주제처럼 만들고 싶다면 멀티스레딩을 사용하지 않는 것이 좋습니다