728x90
반응형
synchronized 는 method에 썼을 때에는 method 단위로, block으로 지정했을 때에는 block 단위로 배타제어가 됩니다.
public synchronized void func1() {
}
public void func2() {
...
synchronized (obj) {
...
}
}
위와 같이 두 함수가 같은 클래스에 있을 때 한 프로세스가 func1을 실행하고 있을 때 다른 프로세스는 func1을 실행할 수 없습니다. 하지만 func2는 실행이 가능하죠.
func2에서는 두 개 이상의 프로세스가 동시에 함수를 실행할 수는 있지만 synchronized 블럭은 한번에 하나씩만 실행됩니다.
===================================================================================
그럼...동시에 실행시 블록안에 있는건 기다렸다가 FIFO 방식으로 호출하는건가?? 이건 좀 알아 봐야 할듯...
728x90
반응형