제가 뮤텍스는 잘사용을 안해서..
형제프로세스가 아닌 다른프로세스끼리는 뮤텍스 사용할수있나요?
여테까지 주로 세마포어 사용했었는데.. 뮤텍스로 할수 있나요?
반드시 뮤텍스여야만 하나요???
반드시... 가 아니라면... 프로세스 사이에선 세마포어를 이용하심이...
반드시... 이더라도 뮤텍스는 힘들지 않나요?
반드시 뮤텍스여야만 하나요??? 반드시... 가 아니라면... 프로세스 사이에선 세마포어를 이용하심이... 반드시... 이더라도 뮤텍스는 힘들지 않나요?
꼭그렇게 해야하는건 아닙니다만.. 그걸사용하고 싶어서요..ㅎㅎ 말했듯이 여테까지는 세마포어로 했었습니다. 그런데 순전히 제상각에 적용할부분이 뮤텍스를 사용함이 더 합당하다는 생각이 드는군요..ㅎㅎ
----------------------------------------------------------------------------
기존에 이에 대한 글이 있네요.
아마 검색하셨을 수도 있지만 혹시나 해서
리눅스 환경이라면 힘드실 듯...
http://bbs.kldp.org/viewtopic.php?t=28658&highlight=%B9%C2%C5%D8%BD%BA+%BC%BC%B8%B6%C6%F7%BE%EE+%C7%C1%B7%CE%BC%BC%BD%BA
아래 것들이 정의 되어 있다면, 뮤텍스를 프로세스간에 사용할수 있습니다. _POSIX_THREAD_PROCESS_SHARED
pthread_condattr_getpshared() pthread_condattr_setpshared() pthread_mutexattr_getpshared() pthread_mutexattr_setpshared() pthread_rwlockattr_getpshared() pthread_rwlockattr_setpshared()
그리고 리눅스에서도 잘됩니다.
제 기억으로는 redhat 7.x에서는 안되었고,
nptl이 적용된 리눅스는 되었던 걸로 문서에서 읽었습니다.
그..러..나..,
shared mutex를 쓴다는 이야기는 shared condition variables
(pthread_cond...)를 쓸 수 있다는 이야기인데,
이 부분은 애석하게도 portability가 그리 높지 않습니다.
제 의견으로는 portability를 중시하신다면,
시스템 세마퍼가 가장 낫고, 그렇지 않다면 case by case로
동작 유무를 일일이 체크해 보셔야 할 것입니다.
오랜된 운영체제에서는 지원을 하지 않습니다.
김성진 드림
고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.
텍스트 포맷에 대한 자세한 정보
<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]
...
반드시 뮤텍스여야만 하나요???
반드시... 가 아니라면... 프로세스 사이에선 세마포어를 이용하심이...
반드시... 이더라도 뮤텍스는 힘들지 않나요?
Re: ...
꼭그렇게 해야하는건 아닙니다만.. 그걸사용하고 싶어서요..ㅎㅎ
말했듯이 여테까지는 세마포어로 했었습니다.
그런데 순전히 제상각에 적용할부분이 뮤텍스를 사용함이 더 합당하다는 생각이 드는군요..ㅎㅎ
----------------------------------------------------------------------------
기존에 이에 대한 글이 있네요
기존에 이에 대한 글이 있네요.
아마 검색하셨을 수도 있지만 혹시나 해서
리눅스 환경이라면 힘드실 듯...
http://bbs.kldp.org/viewtopic.php?t=28658&highlight=%B9%C2%C5%D8%BD%BA+%BC%BC%B8%B6%C6%F7%BE%EE+%C7%C1%B7%CE%BC%BC%BD%BA
Re: 보통 안된다고 생각하시는데 사실은...
아래 것들이 정의 되어 있다면, 뮤텍스를 프로세스간에 사용할수 있습니다.
_POSIX_THREAD_PROCESS_SHARED
pthread_condattr_getpshared()
pthread_condattr_setpshared()
pthread_mutexattr_getpshared()
pthread_mutexattr_setpshared()
pthread_rwlockattr_getpshared()
pthread_rwlockattr_setpshared()
그리고 리눅스에서도 잘됩니다.
shared mutex
제 기억으로는 redhat 7.x에서는 안되었고,
nptl이 적용된 리눅스는 되었던 걸로 문서에서 읽었습니다.
그..러..나..,
shared mutex를 쓴다는 이야기는 shared condition variables
(pthread_cond...)를 쓸 수 있다는 이야기인데,
이 부분은 애석하게도 portability가 그리 높지 않습니다.
제 의견으로는 portability를 중시하신다면,
시스템 세마퍼가 가장 낫고, 그렇지 않다면 case by case로
동작 유무를 일일이 체크해 보셔야 할 것입니다.
오랜된 운영체제에서는 지원을 하지 않습니다.
김성진 드림
고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.
댓글 달기