우리는 세 개의 개체가 강탈 한 설정 20 표, 멀티 스레딩을 사용하는 동안.
1 공용 클래스 Web123506은 구현 의 Runnable { 2 개인 INT = 20 ticteksNums 단계; // 票数 3 4 @Override 5 공개 공극 실행 () { 6 동안 ( 참 ) { 7 경우 (ticteksNums <0 ) { 8 체류 ; 9 } 10 / * 시도 { 11 //睡眠 12 에 Thread.sleep (200); 13 } 캐치 (의 InterruptedException E) { 14 e.printStackTrace (); 15 } * / 16 에서 System.out.println (는 Thread.currentThread () getName () + - + ticteksNums-- ">은 잡았다." ); 17. 18이다 } (19). } (20)이다 (21)는 공공 정적 무효 메인 (문자열 []에 args) { 22이다 // 자원 (23)은 Web123506 웹 = 새로운 새 ; Web123506 () (24) // 제의 복수 25 새로운 새로운 스레드 (웹 "우리" ) .start () (26)는 새로운 신규 스레드 (웹 "귀하" ) .start (); 27 새로운 새로운 스레드 (웹, "암표").스타트(); 28 29 } 30 31 }
영업 실적은 다음과 같습니다 :
우리는 -> 20 움켜
> (18)를 잡고 - 암표를
당신은 -> 19 움켜
> (16)가 잡고 - 암표를
> 17 움켜 잡았다 - 우리
암표를 -> 14 잡고
당신 -> 잡아 15 일까지
암표 -> 12 움켜
> 13 움켜 잡았다 - 우리
암표를 -> (10)를 잡고
당신은 -> 11 움켜
암표를 -> 8 잡고
> 9 잡고 - 우리
암표를 - -> 여섯 잡고
> 7 잡고 - 당신은
> 4 잡고 - 암표를
> 5 잡고 - 우리
> 2 잡고 - 암표를
당신의이 -> 3 잡고
암표를 -> 0을 잡고
우리는 -> 1을 잡고
결론 :
우리는 어떤 중복 스레드 안전 표시, 티켓을 잡아하지가 있음을 알 수있다.
우리가 잠을 스레드에 가입이 시간.이 시간에 관찰 된 스레드 안전하지 않다?
1 공용 클래스 Web123506은 구현 의 Runnable { 2 개인 INT = 20 ticteksNums 단계; // 票数 3 4 @Override 5 공개 공극 실행 () { 6 동안 ( 참 ) { 7 경우 (ticteksNums <0 ) { 8 체류 ; 9 } 10 시도 { 11 // 睡眠 12 에 Thread.sleep (200 ); 13 } 캐치(예외 : InterruptedException E) { 14 e.printStackTrace (); 15 } 16 에서 System.out.println (는 Thread.currentThread () getName () + "-"잡고 "ticteksNums-- +. ) . (17) (18)된다 } . 19 } 20은 (21)은 공공 정적 무효 메인 (문자열 []에 args) { 22이다 // 자원 (23)이된다 Web123506 웹 = 새로운 새 ; Web123506 () (24) // 제의 복수 25 새로운 새로운 스레드 (웹 "우리" ) .start (); (26)는 새로운 새 스레드 (웹, "귀하" ) .start (); (27) 새로운 새로운 스레드 (웹, "암표상" ) .start (); 28 (29) } (30) (31)가 }
결과 :
암표 -> (20)가 잡고
19> 움켜 잡았다 - 우리
> 18 잡고 - 당신
> (17)가 잡고 - 암표를
> 16 움켜 잡았다 - 우리를
당신 -> 15 움켜
암표를 -> 돌진 14
우리는 -> 13 움켜
> 12 움켜 잡았다 - 당신
> (11)를 잡고 - 당신은
> 10 움켜 잡았다 - 우리는
> 9 잡고 - 암표를
당신 -> 8 잡고
우리를 -> 돌진 7
암표 -> 6 움켜
> 5 잡고 - 당신이
> 4 잡고 - 우리
암표 -> 세 잡고
당신의 -> 2 잡고
> 1 움켜 잡았다 - 우리
암표를 - > 0 잡아
당신 -> -1 잡고
우리를 -> 잡고 -1
결론 :
우리가 잠을 스레드를 추가 할 때 티켓을 잡기 위해 이번에는 마이너스가있을 수 있습니다 또는 티켓을 실을 잠을 스레드에 합류에 대해 동일한 지침이 안전하지 않은이 시간을 잡아 두 사람이있을 것입니다.