하나의 process 에 여러개의 mutex

haryngod의 이미지

안녕하세요!

혹시 하나의 프로세스이지만 다중 스레드라고 할 때,
여러개의 mutex를 사용하는것이 의미가 있는 건가 너무 궁금해요.

예를들어 각 스레드에서 받고 보내는 시리얼 데이터가 다를 경우,
시리얼 데이터마다 다른 mutex를 사용하는 거죠.

이런 방법이 각 스레드에서 받는 데이터 마다 적용이 되는지, 아니면 하나의 뮤텍스를 사용할 때랑 다르지 않는지 궁금합니다!

chocokeki의 이미지

mutex 구간을 어떻게 넣느냐에 따라 다르겠죠
그리고 각 쓰레드마다 경쟁관계가 어떻게 형성되냐에 따라도 다르겠구요
설계하는 분 맘대로 같아요

stars의 이미지

뮤텍스는 프로세스/스레드와 무관하게 특정 자원(메모리)을 접근할때 충돌 방지가 목적입니다.
다른 스레드이고 다른 시리얼 데이터라도 같은 메모리 영역을 접근하게 된다면 뮤텍스가 필요하지요.
뮤텍스 개수는 각 스레드(프로세스)별로 동일 자원에 대해 접근할 때 마다 하나씩 발생되겠네요.