2. Guarded Suspension
网上有一个比较好的描述方式:要等我准备好噢!
这里我们假设一种情况:一个服务器用一个缓冲区来保存来自客户端的请求,服务器端从缓冲区取得请求,如果缓冲区没有请求,服务器端线程等待,直到被通知有请求了,而客户端负责发送请求。
很显然,我们需要对缓冲区进行保护,使得同一时刻只能有一个服务器线程在取得request,也只能同一时刻有一个客户端线程写入服务。
用UML描述如下:

具体实现可以参看代码。
但是,这个模式有一点点瑕疵,那就是缓冲区没有限制,对于有的情况就不会合适,比如说您的缓冲区所能占用的空间受到限制。下面的Producer Consumer Pattern应该会有所帮助。
3. Producer Consumer
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!


