이 기사는 Java의 사용 및 동시 사용법을 자세히 분석합니다. 참조를 위해 모든 사람을 위해 공유하십시오. 특정 분석은 다음과 같습니다.
1. 동기 컨테이너에는 두 부분이 포함되어 있습니다 : 벡터와 해시 가능
다른 하나는 컬렉션에 의해 생성 된 동기식 포장 클래스입니다. 동기 컨테이너는 컨테이너의 모든 상태를 인터뷰하여 실 안전을 달성합니다.
그들은 다음과 같은 문제가 있습니다.
a) 작동하려면 추가 잠금 보호가 필요합니다. 예를 들어, 추가와 같은 반복적 인 누락 된 조건.
b) 해시 코드 인 토스트 링은 간접적으로 반복적이라고 부르며 동시성에주의를 기울여야합니다.
2. Java5.0의 동시 용기.
ConsurenThashMap은 동기식 맵 구현을 대체 할 수 있습니다.
주로 읽을 때, CopyonWriteArrayList는 목록의 동기식 구현입니다.
동시에, 대기열과 블록 킹크 : concurentlinkedqueue : FIFO 대기열.
PriorityQueue : 비 말기 우선 순위 큐.
차단 큐는 차단 및 차단 획득 증가.
a) concurenthashmap : 공공 잠금 장치가 아니라 별도의 잠금입니다. 독자와 작가도 동시에 맵에 액세스 할 수 있으며 제한된 수의 글쓰기도 동시에 맵을 수정할 수 있습니다. 그러나 크기와 언어는 약화되며 이는 추정됩니다.
b) 복사기 WriteArraylist : 반복자는 하단 -층 기본 배열 참조를 유지하며 참조는 수정되지 않습니다.
3. 동기화기
a) CountdownLatch. 생성자 매개 변수는 N이고 카운트 다운 후 N이 0이고 모든 스레드가 계속 실행됩니다.
b) FutureTask : runnable을 계산하여 Callable에 의해 구현 될 수 있으며 결과를 수행 할 수 있습니다. 포함 : 기다림, 실행 및 완료.
c) 세마포어 : 동시에 액세스 할 수있는 활동 수
d) 순환 바리어 : 폐쇄증과 유사합니다. 자물쇠가 사건을 기다리고 있으며 레벨은 다른 스레드를 기다리고 있습니다. 초기 n, 런닝 가능한 r, n 스레드가 기다리고있다.
이 기사는 모든 사람의 Java 프로그램 설계에 도움이되기를 바랍니다.