자바 쓰레드 동기화에 들어가는 세마포 락 뮤텍스 대해서 이해가 잘 안가서요..
1...
아무래도 읽기 쉽게 스크린 샷으로 찍었는데요
조금이라도 읽으시는데에 도움이 되었으면 좋겠어요.
왼쪽과 오른쪽의 코드는 별개인데요...
왼쪽 AccountExam 에서는 Synchronized(this)를 썻고요
오른쪽 BoundedBuffer 에서는요 lock 이라는 오브젝트를 생성해서 Synchronized(lock) 이 들어갔는데요.
이해가 잘 안가는 부분이 있어서요
lock 이라는 것을 배울 때 불리안 (boolean) 값이라고 배웠는데요.
어떨 때는 이진 값을 쓰고요 위에 올린 코드는 오브젝트를 생성해서 쓰고요.
공룡책에 나오는 (이진값을 가지는 락)락이랑 위에 코드에 써진 (락값이 오브젝트) 락이랑은 다른 개념인가요?
공룡책에서 세마포 락 뮤텍스을 설명해 놓았는데요. 안에 인자가 이진 값이나 (락) 숫자를 가지는 것 (세마포)를 가지는 것 같은데요.
자바에서 구현이 될 때는 자꾸 오브젝트가 들어가고 하는 것이 혼동이 되서요.
2...
또한 두번째 스크릿 샷에 Semaphore sem 이랑 Semaphore mutex 는 이름만 다르지 같은 세마포 오버젝트를 썻으니 같은 기능인가요?
세마포는 동기화 도구이고 mutex 는 상호배재 하는 부분을 가르키는 상징적인 말인지 자바에 나와있는 도구인지... mutex 는 잘 모르겠어요.
acquire release 할 때 정확이 어떤 오브젝트를 락을 거고 푸는 것인지도 모르겠고요. (공룡책에 나와있는 wait(S) 랑 signal(S)도 자바에서 사용하는 것도 못본 것 같고요)
네이버를 찾아봐도 여기를 찾아봐도 이 부분은 시원하게 설명하는 부분을 잘 못 찾아서요..
질문이 이것저것 많네요. 죄송합니다. ㅠㅠ
도와주세요. 너무 힘드네요
첨부 | 파일 크기 |
---|---|
![]() | 104.87 KB |
![]() | 93.79 KB |
댓글 달기