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

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

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.