生产者信号量producer(100);
消费者信号量consumer(0);
生产者是盛饭的,A桌子上有100个空碗就相当于有100个信号量。获得一个信号量相当于别人从桌子拿起一个碗递给他,他盛了1碗饭。A桌子总的碗数减1(A.acquire())A--。B桌子上有1碗可以吃(B.release())B++。
消费者是吃饭的,B桌子多少碗可以吃的饭就是多少个信号量,一开始B桌子上没有饭,所以他一开始的信号量为0。获得一个信号量相当于吃了1碗饭(B.acquire())B--。吃完空碗放到A桌(A.release())A++。A多了一个可以用来盛饭的碗。