자바 공유 잠 금 실현
1456 단어 자바 기반
import java.util.Map;
public class ShareLock {
private static ShareLock instance = null;
private ShareLock() {
}
private Map lockpool = new java.util.concurrent.ConcurrentHashMap(
1024);
public static ShareLock getInstance() {
if (instance == null) {
synchronized (ShareLock.class) {
instance = new ShareLock();
}
}
return instance;
}
/**
* key, byte[]
*/
public byte[] getShareLock(String key) {
byte[] lock = null;
if (lockpool.containsKey(key)) {
lock = lockpool.get(key);
} else {
lock = new byte[0];
lockpool.put(key, lock);
}
return lock;
}
public void removeShareLock(String key) {
lockpool.remove(key);
}
}
호출 할 때 이렇게.
synchronized (ShareLock.getInstance().getShareLock("xxx")) {
try {
... } finally {
ShareLock.getInstance().removeShareLock("xxx");
}
}
같은 key, 예 를 들 어 id 와 같은 대상 이 메모리 에 있 는 모든 존재 라면 같은 byte 배열 인 스 턴 스 를 되 돌려 줍 니 다 (왜 byte 배열 입 니까? 모든 대상 에서 그의 비용 이 가장 적 기 때 문 입 니 다).이 byte 배열 의 인 스 턴 스 잠 금 을 통 해 이 그룹 을 잠 그 는 대상 에 도달 합 니 다!본질은 여전히 인 스 턴 스 잠 금 입 니 다. 하나의 인 스 턴 스 가 목표 대상 에 대응 하 는 여러 인 스 턴 스 에 불과 합 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
범용 용법 예시앞으로 51CTO 에 정착 해 기술 개발 에 전념 할 테 니 잘 부탁드립니다.다음 코드 는 자신 이 (저자: 이 흥 화) 를 공부 할 때 두 드 린 코드 로 주석 이 완비 되 어 있다. 범용 클래스 Point. ja...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.