39、并发编程中的类型系统与进程演算研究

并发编程中的类型系统与进程演算研究

1. 并发对象类型系统

1.1 类型规则概述

在并发对象编程中,为了避免竞态条件,我们需要一套有效的类型系统。该类型系统有一些重要规则:
- 对于两个子项,它们的名称必须不相交,且子项的干净名称也需不相交,这意味着两个子项不能同时持有同一把锁。
- 规则 (Val Res) 要求在引入名称 p 时, p 必须在 a 中被定义,并且与 p 关联的锁要么未被锁定,要么由 a 持有。
- 规则 (Val Locked) 禁止对同一把锁进行嵌套获取。
- 为确保项的干净名称和已定义名称在求值过程中保持不变,不在求值上下文中的项不能有任何干净或已定义的名称。
- 规则 (Sub Object) 定义了对象类型上的通常子类型关系,并且可以通过扩展类型系统,使用更强大的子类型规则,使不可变组件的结果类型和权限具有协变性,我们推测扩展后的系统仍然无竞态。

1.2 类型系统应用示例

1.2.1 计数器

一个未同步的计数器实现 count n 可以被赋予以下类型:

[val : ς(x)Int·{x}·x,
read : ς(x)Int ·{x}·+,
inc : ς(x)[ ]·{x}·+]

这个类型表明 val 方法受对象的自身锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值