교착 상태 AB-BA 문제

AB-BA는 자주하지만,이 때 잠금 B 도망하지만 스레드를 얻기 위해 다른 스레드 II에서 발견 된, B를 잠금 A를 데리러 잠글 수있는 스레드에서 나타난 다중 스레드 교착 상태를 일으키는 가장 큰 범인입니다 II B는 다음으로 교착 상태에있는 다른 두 개의 스레드를 기다리고, A와 잠금 요구를 잠금

1 개  공용  클래스 주요 {
 2       공용  정적  무효 메인 (문자열 []에 args) {
 3          에서 System.out.println ( "演示开始" );
(4)             새로운 쓰레드 (() -> {
 5               금주 모임 ();
 6             }) (시작).
7             새로운 스레드 (() -> {
 8               비비 ()는,
 9             }).) (시작;
10       }
 11  
12       정적  클래스 {
 13          공용  정적  동기화  공극 A () {
 14              시도{
 15                  에 Thread.sleep (3000 );    
 16              } 캐치 (예외 E) {
 17.                  e.printStackTrace ();
 18이다              }
 (19).              
(20)은  
21이고              , I는 잠금을 얻었다 "(에서 System.out.println 그릇 오는 B 로크 ! " );
 (22)가  
23 인              비비 ();
 24          }
 25       }
 (26)가  
27       정적  클래스 B {
 (28)          공공  정적  동기화  무효 B () {
 29              에서 System.out.println ("나는, 잠금 접근 그릇 A B 잠금을 얻었다 ! "온 )
 (30)             시도 {
 31                  에 Thread.sleep (3000 );    
32              } 캐치 (예외 E) {
 33                  e.printStackTrace ();
34              }
 35              금주 모임 ();
36          }
 37       }
 38   }

 

추천

출처www.cnblogs.com/shaozhen/p/11127126.html