자바 쓰레드 동기화에 들어가는 세마포 락 뮤텍스 대해서 이해가 잘 안가서요..

cosmir의 이미지

1...
아무래도 읽기 쉽게 스크린 샷으로 찍었는데요
조금이라도 읽으시는데에 도움이 되었으면 좋겠어요.

왼쪽과 오른쪽의 코드는 별개인데요...

왼쪽 AccountExam 에서는 Synchronized(this)를 썻고요
오른쪽 BoundedBuffer 에서는요 lock 이라는 오브젝트를 생성해서 Synchronized(lock) 이 들어갔는데요.

이해가 잘 안가는 부분이 있어서요

lock 이라는 것을 배울 때 불리안 (boolean) 값이라고 배웠는데요.
어떨 때는 이진 값을 쓰고요 위에 올린 코드는 오브젝트를 생성해서 쓰고요.

공룡책에 나오는 (이진값을 가지는 락)락이랑 위에 코드에 써진 (락값이 오브젝트) 락이랑은 다른 개념인가요?
공룡책에서 세마포 락 뮤텍스을 설명해 놓았는데요. 안에 인자가 이진 값이나 (락) 숫자를 가지는 것 (세마포)를 가지는 것 같은데요.

자바에서 구현이 될 때는 자꾸 오브젝트가 들어가고 하는 것이 혼동이 되서요.

2...
또한 두번째 스크릿 샷에 Semaphore sem 이랑 Semaphore mutex 는 이름만 다르지 같은 세마포 오버젝트를 썻으니 같은 기능인가요?
세마포는 동기화 도구이고 mutex 는 상호배재 하는 부분을 가르키는 상징적인 말인지 자바에 나와있는 도구인지... mutex 는 잘 모르겠어요.

acquire release 할 때 정확이 어떤 오브젝트를 락을 거고 푸는 것인지도 모르겠고요. (공룡책에 나와있는 wait(S) 랑 signal(S)도 자바에서 사용하는 것도 못본 것 같고요)

네이버를 찾아봐도 여기를 찾아봐도 이 부분은 시원하게 설명하는 부분을 잘 못 찾아서요..

질문이 이것저것 많네요. 죄송합니다. ㅠㅠ
도와주세요. 너무 힘드네요

File attachments: 
첨부파일 크기
Image icon Screenshot.png104.87 KB
Image icon semaphore.png93.79 KB