-1
자바에서 동기화 테스트를하고 있습니다. 결과물은 내가 예상 한 것이 아닙니다. 동기화 된 메서드의 잠금이 작동하지 않는 것 같습니다. 문제에 대한 아이디어가 있습니까? 당신은 논리에서 어떤 실수를 보았습니까?동기화 된 메소드 문제
class Sum implements Runnable{
Thread th;
int start;
int end;
Sum(int start, int end){
th = new Thread(this);
this.start = start;
this.end = end;
th.start();
}
synchronized void count(){
System.out.println("Starting " + this.start);
System.out.println("Ending " + this.end);
}
public void run(){
count();
}
public static void main(String[] args){
Sum th1 = new Sum(1, 100);
Sum th2 = new Sum(101, 200);
}
}
무엇이 보이며 무엇을 기대합니까? –
첫 번째 스레드가 인쇄를 시작하면 간섭없이 첫 번째 스레드가 run()을 완료 할 것으로 기대합니다. 시작 중 ... 종료 ... 두 번째 스레드와 동일합니다. 출력 시작 중 ... 시작 중 ... 종료 중 ... 종료 중 ... –