동시 프로그래밍 - 잠금 Lock 표시
4891 단어 다중 스레드
Lock은 무조건적이고, 윤문할 수 있으며, 정시적이고, 중단할 수 있는 자물쇠 획득 조작을 제공하는 인터페이스로, 모든 잠금 해제 조작 방법이 표시되기 때문에 디스플레이 자물쇠라고 부른다.
Lock 인터페이스 및 핵심 방법
lock,unlock,trylock
Lock에 사용되는 표준 패러다임
package com.jym.concurrent.lock;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class LockDemo {
private Lock lock = new ReentrantLock();
private int count;
public void increment () {
lock.lock();
try {
count++;
} finally {
lock.unlock();
}
}
public synchronized void increment2() {
count++;
increment2();
}
public synchronized void test() {
increment2();
}
}
Lock 커넥터와 synchronized 비교
Lock 인터페이스의 구현 클래스
읽기 및 쓰기 잠금:
같은 시간에 여러 개의 읽기 스레드가 동시에 접근할 수 있지만, 쓰기 스레드가 접근할 때 모든 읽기와 쓰기가 막혀서, 읽기와 쓰기가 적은 경우에 가장 적합하다.
많이 읽고 적게 쓰는 데 쓰인다.ReadLock 읽기 잠금(공유 잠금), WriteLock 쓰기 잠금(배타 잠금)
스레드가 읽기 잠금에 들어가기 위한 사전 요구 사항:
스레드가 쓰기 잠금에 들어가기 위한 사전 요구 사항:
공평 자물쇠와 비공평 자물쇠
공평 자물쇠: 라인이 기다리는 순서에 따라 자물쇠를 가져옵니다.비공평 자물쇠: 랜덤으로 자물쇠를 획득합니다.ReentrantLock은 기본적으로 불공정 잠금입니다.
효율성: 불공평>공평
다시 잠금:
자물쇠에서 계속 자물쇠를 얻는다. 예를 들어 자물쇠를 잠그는 방법을 되돌려 사용했다.
Condition 커넥터
Lock 및 Condition을 사용하여 알림 대기 await: 자물쇠를 가져오는 루트를 막습니다.signal: 막힌 라인을 깨웁니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 다중 스레드를 순차적으로 실행하는 몇 가지 방법 요약Java 다중 스레드를 순차적으로 실행하는 몇 가지 방법 요약 동료는 무심결에 이 문제를 제기하고 두 가지 방법을 직접 실천했다.물론 더 좋은 방법이 있을 거야. 방법 1 이런 방법은 비교적 흔히 볼 수 있는 해결 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.