비정상적인 방법의 자물쇠는 실례적인 대상 자체(this)이고, 정적 방법의 자물쇠는 클래스 대상 자체(.class)이다.
2994 단어 자물쇠
public class LockTest {
public static void main(String[] args) {
MyThread mt = new MyThread();
Thread t1 = new Thread(mt);
Thread t2 = new Thread(mt);
t1.start();
try {
Thread.sleep(10);
} catch (Exception e) {}
mt.flag = false;
t2.start();
}
}
class MyThread implements Runnable{
private int num = 100;
boolean flag = true;
@Override
public void run() {
if(flag){
while(true){
synchronized(this){ //
if(num > 0){
try {
Thread.sleep(10);
System.out.println(Thread.currentThread().getName()+"__run__"+num--);
} catch (Exception e) {}
}
}
}
} else{
while(true){
this.show();
}
}
}
public synchronized void show(){ //
if(num > 0){
try {
Thread.sleep(10);
System.out.println(Thread.currentThread().getName()+"__show__"+num--);
} catch (Exception e) {}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java 다중 스레드 - 자물쇠 상세 및 예시 코드이것은'자전 자물쇠'라고도 합니다.isLocked가true일 때, lock () 를 호출하는 라인은wait () 호출에서 대기를 막습니다.이 스레드가 notify () 호출을 받지 못하거나wait () 에서 되돌아오...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.