并发控制与事务管理的实现
1. 并发控制相关
在多系统中使用具有不同并发特性和需求的类时,可使用ADPP的桥接参与变体来解决问题。以库存服务缓存实现类为例,可使用如下方面为类提供所需注解:
package ajia.service.impl;
import ...
public aspect InventoryReadWriteLockParticipation {
declare @type: InventoryServiceCachedImpl: @ReadWriteLockManaged;
}
若要为其他类提供线程安全访问,可修改声明或添加额外方面来为这些类提供注解,比如使用类型模式将一组类声明为读写锁并发控制的参与者。
AOP(面向切面编程)在并发控制方面表现出色。传统并发控制解决方案往往需要进行系统级的侵入式更改,导致少数线程安全模式的概念可重用性在传统实现中丧失。而AOP通过将模式模块化到可重用的方面,填补了概念与实现之间的差距。
例如,Swing的单线程规则对组件开发者来说很简单,但在多线程UI应用中使用这些组件时,通常需要进行系统级更改。通过采用可重用的方面,遵循Swing的线程安全规则就像扩展该方面并提供一些切入点定义一样简单。使用AspectJ,能获得一个简单的线程安全模型,而不会因复杂的使用方式而增加负担。
同样,引入封装读写锁模式的可重用方面后,实现线程安全的这一特性就像添加几个简单方面并使用注解标记程序元素一样容易。开发者无需每次都去深入研究模式的具体工作原理,只需知道哪些方法以只读方式访问状态,哪些方法会更改状
超级会员免费看
订阅专栏 解锁全文

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



