[发明专利]一种无锁线程有序控制存储信息的方法、装置和服务器有效
申请号: | 201810146120.0 | 申请日: | 2018-02-12 |
公开(公告)号: | CN108363625B | 公开(公告)日: | 2022-04-19 |
发明(设计)人: | 刘希伟;王绍民;张凡文 | 申请(专利权)人: | 聚好看科技股份有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/54 |
代理公司: | 青岛联智专利商标事务所有限公司 37101 | 代理人: | 邵新华 |
地址: | 266100 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 线程 有序 控制 存储 信息 方法 装置 服务器 | ||
本发明涉及数据存储技术领域,提供一种无锁线程有序控制存储信息的方法、装置和服务器。所述方法包括:根据循环队列中共享存储节点的非发布状态,在至少两个第一线程中的焦点线程向共享存储节点存入当前数据期间调用CAS指令;当当前数据存入结束时,非发布状态修改为发布状态,发布状态用于指示第二线程可读取当前数据;为第二线程分配处于发布状态的共享存储节点;根据共享存储节点在循环队列中的存储位置和CAS指令中原游标的一致性,以单向量更新原游标,使焦点线程锁定共享存储节点。如此,可以控制线程有序存取数据,克服对存储队列控制时产生的额外开销,提高线程并发效率。
技术领域
本发明涉及数据存储技术领域,尤其涉及一种无锁线程在循环队列中控制存储信息的方法和装置。
背景技术
在相关技术中,为了避免应用或者操作系统的线程从存储队列中同时读写存储数据而造成数据冲突,采用对线程加锁的方式控制其串行执行读写操作,由于在持有锁的线程释放锁后,挂起的线程才能加锁以串行读写存储数据,限制了存储队列的并发效率,所以采用无锁线程方式明显更高效。
为了使无锁线程有序读写存储数据,针对存储队列有阻塞或非阻塞算法,但都必须保证并发线程同步访问同一存储节点(为了便于描述,下称共享存储节点)以维持存储队列的完整性,分别通过延迟队列(如:生成并检验额外增加的唯一编码)或者限制多线程在有限步骤(如:增加虚节点并控制其出入列)内完成对存储队列中共享存储节点的操作,从而增加了额外开销。
在一些情形下,如在服务器上较多线程需要在存储队列中频繁读写存储节点时,突出的额外开销也会降低并发效率。
发明内容
有鉴于此,本发明提供一种,解决如何在克服额外开销的基础上,对无锁线程从存储队列中存储节点有序读写信息进行控制,以提高线程并发效率。
具体地,本发明通过如下技术方案实现:
第一方面,本发明提供一种无锁线程在循环队列中控制存储信息的方法,该方法包括以下具体步骤:
根据循环队列中共享存储节点的非发布状态,在至少两个第一线程中的焦点线程向共享存储节点存入当前数据期间调用CAS指令;当当前数据存入结束时,非发布状态修改为发布状态,发布状态用于指示与第二线程可读取当前数据;为第二线程分配处于发布状态的共享存储节点;根据共享存储节点在循环队列中的存储位置和CAS指令中原游标的一致性,以单向量更新原游标,为焦点线程锁定共享存储节点。
可选地,当所述焦点线程开始存入存储数据时,焦点线程发送通知信息,通知信息中携带用于唯一标识存储位置的存储编号;
根据通知信息调用CAS指令。
可选地,基于第二线程从共享存储节点中读取的当前数据分量,发布状态切换至非发布状态。
可选地,当当前数据分量小于当前数据总量时,发布状态切换至非发布状态中的独占状态,独占状态用于指示第一线程可向共享存储节点中续存在当前数据之后的数据;当当前数据分量等于当前数据总量时,发布状态切换至非发布状态中的空闲状态。
可选地,当存储位置与原游标一致时,以新游标替换原游标,新游标等于原游标和单向量之和。
可选地,当共享存储节点为循环队列中尾节点时,将单向量从正向量修改为负向量;以等于原游标与负向量之和的新游标更新原游标。
可选地,当共享存储节点为循环队列中尾节点时,将新游标设置为循环队列中首节点对应的存储位置。
可选地,当存储位置和原游标不一致时,向焦点线程反馈用于指示停止存入当前数据的通知信息。
可选地,为焦点线程反馈用于指示续存当前数据的通知信息。
第二方面,基于相同的构思,本发明还提供一种无锁线程在循环队列中控制存储信息的装置,该装置包括以下具体单元:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于聚好看科技股份有限公司,未经聚好看科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810146120.0/2.html,转载请声明来源钻瓜专利网。