자바 는 synchronized 를 사용 하여 상호 배척 잠 금 기능 예제 를 실현 합 니 다.

본 논문 의 사례 는 자바 가 synchronized 를 사용 하여 상호 배척 잠 금 기능 을 실현 하 는 것 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
코드

package per.thread;
 
import java.io.IOException;
 
public class Test {
  
  private int i = 0;
  private Object object = new Object();
   
  public static void main(String[] args) throws IOException {
    
   Test test = new Test();
    
    Test.MyThread thread1 = test.new MyThread();
    Test.MyThread thread2 = test.new MyThread();
    thread1.start();
    thread2.start();
  } 
   
  class MyThread extends Thread{
    @Override
    public void run() {
      synchronized (object) {
        i++;
        System.out.println("i:"+i);
        try {
          System.out.println("  "+Thread.currentThread().getName()+"      ");
          Thread.currentThread().sleep(10000);
        } catch (InterruptedException e) {
          // TODO: handle exception
        }
        System.out.println("  "+Thread.currentThread().getName()+"    ");
        i++;
        System.out.println("i:"+i);
      }
    }
  }
}

이루어지다
i:1
스 레 드 Thread-0 수면 상태 진입
스 레 드 Thread-0 수면 종료
i:2
i:3
스 레 드 Thread-1 수면 상태 진입
스 레 드 Thread-1 수면 종료
i:4
분석 하 다.
thread 1 휴면 후 thread 2 는 object 에 synchronized 를 추 가 했 기 때문에 즉시 실행 되 지 않 았 습 니 다.
더 많은 자바 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기