一种基于原子操作的三态控制方法技术

技术编号:23287796 阅读:60 留言:0更新日期:2020-02-08 17:56
一种基于原子操作的三态控制方法,该方法包括一个整数状态值和一个与之关联的对象,由三个等差的整数A、B、C来表示三种状态;三个整数的间隔为N,N≠0,即A+N=B,B+N=C;关联对象由控制者和访问者进行操作,控制者使用原子加N操作或原子减N操作对状态值进行修改,访问者使用原子比较并交换CAS操作对状态值进行判断和修改;控制者和访问者根据原子操作的结果判断是否对关联对象进行操作。

A three state control method based on atomic operation

【技术实现步骤摘要】
一种基于原子操作的三态控制方法
本专利技术涉及计算机系统软件编程领域,特别是一种基于原子操作的三态控制方法。
技术介绍
在计算机系统软件中对设备和对象的状态控制,通常是软件设置状态值来体现和判断该设备或对象的工作状态,例如设备的使能和禁用,由于状态值一般是个普通的整数变量,需要锁机制来保证对其访问和修改的有效性。任何锁机制都只有两种状态,即锁定和非锁定两种状态,需要先确定锁为非锁定状态然后将其变更为锁定状态才能去修改状态值。因此状态值的修改需要经过两个过程,且在任意时间锁不一定就处于非锁定状态,可能另外一个线程正在访问导致当前线程需要等待一段时间才能变更锁的状态。而乐观锁和普通锁本质上并没有区别,唯一的区别是乐观锁是由编程者决定以什么方式等待,普通锁机制默认使当前线程挂起或使处理器轮询锁状态的方式进行等待。对于访问不频繁的设备来说,这种机制是简单而有效的,但对于像频繁调度的处理器或频繁写入显示信息的显示屏对象,控制线程和访问线程都有可能等待锁的状态被阻塞而导致性能上的瓶颈。
技术实现思路
本专利技术的目的是克服现有技术的上述本文档来自技高网...

【技术保护点】
1.一种基于原子操作的三态控制方法,该方法包括一个整数状态值和一个与之关联的对象,由三个等差的整数A、B、C来表示三种状态;三个整数的间隔为N,N≠0,即A + N = B,B+ N = C,若N为正数则A < B < C,若N为负数则A > B > C;其特征在于:关联对象由控制者和访问者进行操作,控制者使用原子加N操作或原子减N操作对状态值进行修改,访问者使用原子比较并交换操作对状态值进行判断和修改;控制者和访问者根据原子操作的结果判断是否对关联对象进行操作。/n

【技术特征摘要】
1.一种基于原子操作的三态控制方法,该方法包括一个整数状态值和一个与之关联的对象,由三个等差的整数A、B、C来表示三种状态;三个整数的间隔为N,N≠0,即A+N=B,B+N=C,若N为正数则A<B<C,若N为负数则A>B>C;其特征在于:关联对象由控制者和访问者进行操作,控制者使用原子加N操作或原子减N操作对状态值进行修改,访问者使用原子比较并交换操作对状态值进行判断和修改;控制者和访问者根据原子操作的结果判断是否对关联对象进行操作。


2.根据权利要求1所述的一种基于原子操作的三态控制方法,其特征是:控制者使用原子操作将状态值原子化的加N,若加N后状态值为B则对关联对象进行控制操作,若加N后状态值为C则不需要进行任何操作;访问者使用原子比较并交换操作判断状态值是否为A,若原状态值为A则将其原子化的替换为B,若原状态值为B则等待控制操作结束。


3.根据权利要求1所述的一种基于原子操作的三态控制方法,其...

【专利技术属性】
技术研发人员:龙恢管志坚
申请(专利权)人:长沙新弘软件有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1