会话类型基础介绍
1. 引言
在复杂的并发交互中,参与者常常会按照预先设定的协议交换大量消息。会话类型的出现,为简洁描述并发计算中参与者之间的持续交互提供了可能。
以简化的分布式拍卖系统为例,该系统有三种参与者:卖家、拍卖师和竞拍者。卖家的协议较为简单,其可执行的操作是向拍卖师发起售卖请求,提供物品描述(字符串)和最低售价。协议起始如下:
⊕{selling: !String.!Price ... }
卖家发起请求后等待结果,可能出现物品售出(卖家获得售价)或未售出两种情况,协议继续如下:
&{sold: ?Price ... , notSold: ... }
整个卖家协议可简洁描述为:
⊕{selling: !String.!Price.&{sold: ?Price.end, notSold: end}}
拍卖师的协议相对复杂,他们既要与卖家交互,也要与竞拍者交互。与卖家交互时,拍卖师需提供售卖选项,若该选项被选中,要接收物品描述和卖家要价:
&{selling: ?String.?Price ... }
之后拍卖师将物品上架,把结果(售出或未售出)反馈给卖家:
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



