여러명이 사는집에 냉장고에 우유가 없으면 우유를 사려고 해요.

만약에 lock을 안쓴다치면

 

A                                                 B

냉장고를 확인한다

우유가 없다                                       냉장고를 확인한다.

우유를 사러간다                                   우유가 없다.

우유를 산다                                        우유를 사러간다.

집에 돌아온다음 냉장고에 우유를 넣는다,             우유를 산다.

      집에 돌아온다음 냉장고에 우유를 넣는다.


이렇게 되면 우유가 2병 생기는데 하나의 우유는 유통기한이 지나서 버려야되요 ㅠㅠ


그래서 우유가 없으면 제일처음 우유가 없는걸 확인한 사람만 우유를 사러가도록 해주려고 해요.


//냉장고를 확인한다

if(냉장고가 lock되어있다)

{
    unlock 될때까지 기다린다;

}

lock을 건다;

// 우유가 있는지 확인한다.

if(우유가 없다)

{
    우유를 사러간다;

우유를 산다;

집에 돌아온다음 냉장고에 우유를 넣는다;

}

다른사람이 냉장고에 접근할 수 있도록 unlock해준다;


이런게 lock 개념으로 이해했는데 맞나요?


근데 생각해보니까 이렇게 lock을 거는것보다

그냥 냉장고에 내가 우유사러갔다고 메모를 남기고,

우유를 사서 돌아온다음 메모를 떼버리는 방법이 

메모가 붙여져있으면 다른 사람이 우유가 냉장고에 없어도

우유를 굳이 사러 안가도되고 냉장고에 접근도 할 수 있기

때문에 더 효율적이라고 생각이 들었는데

이러한 기법도 있나요?