컴공 일기238
게시글 주소: https://orbi.kr/00066131728
Multi 라는 얘기가 나오는 순간 동기화에 대한 이슈들은 필연적으로 따라오게 됩니다. Multi-Threading / Multi-Processor / Multi-Processing /...
그 동기화를 해주는 도구들 중 하나가 Mutex라는 녀석이죠. 상호 배제를 의미하는 (Mutual-Exclusive)의 약어이구요.
코드가 복잡하긴 합니다만,
스레드가 여러개라 할 지라도, Mutex Lock과 Unlock 사이에 놓인 임계구역엔 Lock이 반환되기 전까지 단 하나의 스레드만 접근할 수 있습니다. 즉 경쟁 조건이 차단되었다는 의미이고, 나름의 실행순서가 정해지게 된다는 의미이지요.
물론 락을 어떤 스레드가 먼저 획득하게 되는지 프로그래머는 알 수 없습니다. 그것은 온전히 스케줄러의 몫이죠. 그래서, 멀티라는 얘기가 컴공에서 나오는 순간, 그놈의 ‘우연성’ 얘기가 따라 나오게 되죠.
복잡하네요… 설명해놓고도.
공부를 아직 더 해야 하나봅니다.
void test(int i)
{
//If i'm hungry and my neighbors are not eating,
//then let me eat.
if(state[i] == HUNGRY &&
state[leftOf(i)] != EATING && state[rightOf(i)] != EATING)
{
state[i] = EATING;
pthread_cond_signal(&cond_vars[i]);
}
}
void pickup(int i)
{
pthread_mutex_lock(&mutex_lock);
state[i] = HUNGRY;
test(i);
while(state[i] != EATING)
{
pthread_cond_wait(&cond_vars[i], &mutex_lock);
}
pthread_mutex_unlock(&mutex_lock);
}
void putdown(int i)
{
pthread_mutex_lock(&mutex_lock);
state[i] = THINKING;
test(leftOf(i));
test(rightOf(i));
pthread_mutex_unlock(&mutex_lock);
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
두개 있던데
-
사탐런 질문 8
이번에 사탐런 하게된 혀녁입니다 서성한 라인 공대 희망하는데 사문 정법 / 사문...
-
안녕하세요. 비가 그치고 겨울의 햇님이 다시 뜨기 시작하는 일요일입니다! 어제 저의...
-
저처럼 14번만 틀린 사람은 없나요 이거 오르비 보다 보니 나만 틀린 것 같음…
-
요즘 노트북으로 많이들 하시는 걸 목격하고 무엇보다 오피스에서도 직접 손으로...
-
안녕하세요. 나무 아카데미입니다. 추운 겨울을 지나 봄이 다가오고 있는데요. 봄이...
-
공영운 전 현대차 사장 내일 민주당 입당… 9호 인재로 영입 1
(서울=뉴스1) 정재민 기자 = 더불어민주당은 오는 22일 총선 9호 인재영입인사로...
-
안녕하세요. 나무 아카데미입니다. 추운 겨울을 지나 봄이 다가오고 있는데요. 봄이...
-
아침국어 너무졸려뇨
-
이맛에 덕코 쓰는구먼 변환표점 이해 완료!
-
이제 약사(진)입니다 기분좋네여 호호호
냥컴 ㄷㄷ
아아아아아 아닙니다… 전 홍컴입니다…
냥은 에리카뱃입니다…
아 ㅈㅅㅎㄴㄷ ㅈㅅㅎㄴㄷ