C# Monitor与挤地铁

 

今天下大雨乘坐地铁的人超级多,所以乘客在地铁外面就被拦住了,这里就叫做 “对象的等待队列”。什么时候进入地铁要等待通知,收到一次通知,闸门打开一次,可以进入一个乘客。

到了地铁里面大家可以抢着上车,谁能挤上去就要看本事了,但是讲文明的话还是要遵守先来后到的规则,这里就叫做 “对象的就绪队列”。

所谓的就绪指的是大家在这里可以竞争上车,上车的动作就是 Monitor.Enter(),上车后会执行一下Monitor.Pulse(),通知外面的闸门可以放一个乘客进来

乘客如果想在中途下车休息一下可以执行Monitor.Wait(),再次上车还是需要到站外排队,如果想出站可以调用Monitor.Exit()

 

在这里地铁列车就是是共享资源,地铁车门可以理解为线程锁对象。

 

posted @ 2016-06-06 15:33  westfruit  阅读(150)  评论(0)    收藏  举报