发明名称 多线程通过数组处理数据的方法、系统及多线程处理器
摘要 本发明公开了一种多线程通过数组处理数据的方法、系统及多线程处理器,多线程以数组的方式存储与读取数据,避免互斥锁的使用,提升存储与读取的效率;游标以原子递增的方式,使多个线程同时存取数据的位置不重叠,保证多个线程并行运行且互不干扰;数组的大小设定为2的N次方,简化游标的操作为原子递增,即使游标范围溢出从0开始,仍能保证正确的位置指向;为内核设计、多线程设计和服务器并发设计等提供了新的设计思路。
申请公布号 CN103713884A 申请公布日期 2014.04.09
申请号 CN201310703259.8 申请日期 2013.12.18
申请人 珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司 发明人 余欣
分类号 G06F9/38(2006.01)I 主分类号 G06F9/38(2006.01)I
代理机构 广州嘉权专利商标事务所有限公司 44205 代理人 陈国荣
主权项 一种多线程通过数组处理数据的方法,其特征在于,所述数组中的每一个元素包括数据和用于标志此元素是否存储有数据的状态值,且所述数组设置有存储计数和与存储计数对应的两个游标,所述存储计数用于标记数组中存储的元素个数,所述两个游标为存储游标和扩展存储游标,所述存储游标用于指示当前数组已存储的元素位置,所述扩展存储游标用于指示当前数组正在存储的元素位置,所述方法包括存储的步骤:(11)判断存储计数与数组可存储元素个数的大小;(12)当存储计数小于数组可存储元素个数时,存储计数加1,且将扩展存储游标加1使其移动至当前线程进行存储的元素位置,并执行步骤(3),否则,结束存储;(13)将存储后的元素的状态值标记为已存储;(14)循环执行步骤(12)和步骤(13),直至所有线程存储完相应的数据;(15)依次检测存储游标至扩展存储游标之间所有元素的状态值,若元素的状态值标记为已存储,则将存储游标加1,否则,若元素的状态值标记为未存储,当前线程结束检测并返回。
地址 519000 广东省珠海市吉大景山路莲山巷8号金山软件大厦