Java Instrumentation浅析

[size=xx-large][color=blue]原委[/color][/size]
利用[url=http://en.wikipedia.org/wiki/Optimistic_concurrency_control]乐观的并发控制[/url]在共享内存的粒度上,所构建的高层的同步控制机制就称作Software Transactional Memory(STM)。

命名渊源起于:
【1】Transactional是指乐观的并发控制中所需要提供的事务回滚特性。而基于锁的并发控制在获得所有所需锁之前只会Block,一旦获得所有锁开始操作之后是不需要回滚的(除非出现死锁)。
【2】首先由Tom Knight在1986年提出的Hardware Transactional Memory,随后由Nir Shavit和Dan Touitou在1995年提出了完全在软件层面实现的Transactional Memory。

STM从2005年开始成为流行的热点。


[size=xx-large][color=blue]优点1:性能高[/color][/size]
理论上,最坏情况下,n个并发任务的执行时间空间复杂度都为O(n),具体的复杂度也依赖实现细节。性能通常会比基于锁的机制要好。


[size=xx-large][color=blue]优点2:概念简洁[/color][/size]
基于锁的同步机制暴露给对于高层程序员的概念抽象不太友好,久为诟病的点包括:
[list]
[*]需要设计并发段
[*]需要设计防死锁机制
[*]需要设计抢占机制,否则就有可能造成高优先级任务饥饿
[/list]

[size=xx-large][color=blue]缺点[/color][/size]
在事务commit的时候如果发现Read Buffer中有旧版本数据则需要回滚事务。事务的可回滚特性使得无法进行回滚的操作无法在STM中直接实现,例如:I/O。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值