728x90
반응형

synchronized 는 method에 썼을 때에는 method 단위로, block으로 지정했을 때에는 block 단위로 배타제어가 됩니다.

 

public synchronized void func1() {

}

 

public void func2() {

  ...

  synchronized (obj) {

    ...

  }

}

 

위와 같이 두 함수가 같은 클래스에 있을 때 한 프로세스가 func1을 실행하고 있을 때 다른 프로세스는 func1을 실행할 수 없습니다. 하지만 func2는 실행이 가능하죠.

func2에서는 두 개 이상의 프로세스가 동시에 함수를 실행할 수는 있지만 synchronized 블럭은 한번에 하나씩만 실행됩니다.


===================================================================================


그럼...동시에 실행시 블록안에 있는건 기다렸다가 FIFO 방식으로 호출하는건가?? 이건 좀 알아 봐야 할듯...

728x90
반응형

+ Recent posts