자바 다 중 스 레 드 synchronized 동기 화 방법 상세 설명
2627 단어 Javasynchronized동기 화
스 레 드 잠 금 은 대상 입 니 다.
1)A 스 레 드 는 object 대상 의 Lock 자 물 쇠 를 먼저 가지 고 있 으 며,B 스 레 드 는 object 대상 의 비 synchronized 형식 을 비동기 적 으로 호출 할 수 있 습 니 다.
2)A 스 레 드 는 object 대상 의 Lock 자 물 쇠 를 먼저 가지 고 있 으 며,B 스 레 드 가 이때 object 대상 의 synchronized 형식 을 호출 하 는 방법 은 기 다 려 야 합 니 다.즉,동기 화 입 니 다.
2.더러 운 읽 기(Dirty Read)
예시:
public class DirtyReadTest {
public static void main(String[] args) {
try {
PublicVar publicVar = new PublicVar();
ThreadA thread = new ThreadA(publicVar);
thread.start();
Thread.sleep(200);
publicVar.getValue();
} catch (Exception e) {
e.printStackTrace();
}
}
static class ThreadA extends Thread {
private PublicVar publicVar;
public ThreadA(PublicVar publicVar) {
this.publicVar = publicVar;
}
@Override
public void run() {
super.run();
publicVar.setValue("B", "BB");
}
}
static class PublicVar {
public String username = "A";
public String password = "AA";
synchronized public void setValue(String username, String password) {
try {
this.username = username;
Thread.sleep(1000);
this.password = password;
System.out.println("setValue method thread name = " + Thread.currentThread().getName() + "\tusername = " + username + "\tpassword = " + password);
} catch (Exception e) {
e.printStackTrace();
}
}
// getValue synchronized ,
public void getValue() {
System.out.println("getValue method thread name = " + Thread.currentThread().getName() + "\tusername = " + username + "\tpassword = " + password);
}
}
}
결 과 는 그림 과 같다.3.synchronized 잠 금 재 접속
'재 입 자물쇠'의 개념 은:
자신 은 다시 자신의 내부 자 물 쇠 를 살 수 있다.예 를 들 어 1 개의 스 레 드 가 대상 의 자 물 쇠 를 얻 었 습 니 다.이때 이 대상 의 자 물 쇠 는 아직 풀 리 지 않 았 습 니 다.이 대상 의 자 물 쇠 를 다시 가 져 오 려 고 할 때 얻 을 수 있 습 니 다.다시 잠 그 지 않 으 면 잠 금 이 사라 집 니 다.
재 입 자물쇠 도 부자 류 계승 환경 에서 지원 합 니 다.계승 에서 자 류 는'재 입 자물쇠'를 통 해 부모 류 의 동기 화 방법 을 사용 할 수 있 습 니 다.
4、이상 발생,자동 잠 금 해제
스 레 드 에 이상 이 생기 면 현재 스 레 드 의 자 물 쇠 를 방출 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.