여러명이 사는집에 냉장고에 우유가 없으면 우유를 사려고 해요.
만약에 lock을 안쓴다치면
A B
냉장고를 확인한다
우유가 없다 냉장고를 확인한다.
우유를 사러간다 우유가 없다.
우유를 산다 우유를 사러간다.
집에 돌아온다음 냉장고에 우유를 넣는다, 우유를 산다.
집에 돌아온다음 냉장고에 우유를 넣는다.
이렇게 되면 우유가 2병 생기는데 하나의 우유는 유통기한이 지나서 버려야되요 ㅠㅠ
그래서 우유가 없으면 제일처음 우유가 없는걸 확인한 사람만 우유를 사러가도록 해주려고 해요.
//냉장고를 확인한다
if(냉장고가 lock되어있다)
{
unlock 될때까지 기다린다;
}
lock을 건다;
// 우유가 있는지 확인한다.
if(우유가 없다)
{
우유를 사러간다;
우유를 산다;
집에 돌아온다음 냉장고에 우유를 넣는다;
}
다른사람이 냉장고에 접근할 수 있도록 unlock해준다;
이런게 lock 개념으로 이해했는데 맞나요?
근데 생각해보니까 이렇게 lock을 거는것보다
그냥 냉장고에 내가 우유사러갔다고 메모를 남기고,
우유를 사서 돌아온다음 메모를 떼버리는 방법이
메모가 붙여져있으면 다른 사람이 우유가 냉장고에 없어도
우유를 굳이 사러 안가도되고 냉장고에 접근도 할 수 있기
때문에 더 효율적이라고 생각이 들었는데
이러한 기법도 있나요?
냉장고를 확인하는이유가 없고
샀으면 마셔야지 마시는것도없고
이런 거 정말 싫어...
아니 이 사람아 우유를 왜 버려 2배로 먹어야지
실제로는 lock은 어느 변수라든가에 거는게 아님.. 이 비유는 우유가 들어있는 냉장고에 걸어서(냉장고가 lock) 이상
그보다는 내 차례다 하고 머리위 전조등 켜놓는거랑 비슷
이 신호가 있는 동안에만 우유를 마시기로 한다 이런 식
근데 전조등에 맞추려니 이것도 영 반영하기 힘든 점이 많네 걍 이런거 하지마삼 ㅋㅋ