[发明专利]多个线程并行访问共享数据结构的方法及装置有效
申请号: | 200810161517.3 | 申请日: | 2008-09-24 |
公开(公告)号: | CN101685408A | 公开(公告)日: | 2010-03-31 |
发明(设计)人: | 甘志;戴晓君;邱模炯;齐尧 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京市中咨律师事务所 | 代理人: | 于 静;刘 薇 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 并行 访问 共享 数据结构 方法 装置 | ||
1.一种并行应用程序中的多个线程并行访问共享数据结构的方法, 包括:
对所述多个线程中的一个线程授予所述共享数据结构的锁;
对所述共享数据结构执行获得所述锁的线程的操作;
缓存所述多个线程中未获得所述锁的线程的操作;
在随后的所述多个线程中的另一个线程获得所述共享数据结构的锁的 期间,对所述共享数据结构执行所述所缓存的操作;以及
将所述所缓存的操作合并为复合操作,其中复合操作包括:
确定所述缓存的操作的每一个的优先级和操作位置;以及
按照所述缓存的操作的优先级和操作位置,对所述缓存的操作进 行排序,
其中,将所述所缓存的操作合并为复合操作的步骤还包括:对排序后 的所述所缓存的操作执行冲突检测和解决操作,
其中,所述对排序后的所述所缓存的操作执行冲突检测和解决操作的 步骤包括:
检测所述排序后的操作中是否包含多个相同的按值删除操作;
如果包含,则对所述多个相同的按值删除操作分配不同的操作位置;
删除未分配操作位置的按值删除操作。
2.根据权利要求1所述的并行应用程序中的多个线程并行访问共享 数据结构的方法,其中,所述操作是以下操作的任意一个:按值删除操作, 即删除共享数据结构中具有所述值的元素;按操作位置删除操作,即删除 共享数据结构中指定操作位置的元素;以及按操作位置添加操作,即在共 享数据结构中的指定操作位置添加元素。
3.根据权利要求1所述的并行应用程序中的多个线程并行访问共享 数据结构的方法,其中,确定所述所缓存的操作的每一个的操作位置的步 骤包括:
确定每一个按值删除操作中的值在所述共享数据结构中的位置,作为 该按值删除操作的操作位置;以及
确定每一个按操作位置删除操作和每一个按操作位置添加操作的操作 位置。
4.根据权利要求1-3中任一项所述的并行应用程序中的多个线程并行 访问共享数据结构的方法,其中,所述对排序后的所述所缓存的操作执行 冲突检测和解决操作的步骤还包括:
检测所述排序后的操作中是否包含多个所述操作位置相同的操作;
对于所述操作位置相同的操作,以第一个具有最高优先级的操作为当 前操作,并以所述当前操作的操作位置为当前位置,将所述当前操作的下 一个操作的操作位置调整为所述当前位置的后续位置;
判断调整后的所述下一个操作的操作位置是否是所述共享数据结构的 有效位置;
如果是有效位置,则以所述下一个操作为当前操作,执行上述的位置 调整步骤和有效位置判断步骤;以及
如果不是有效位置,则删除相应的操作以及剩余的操作。
5.根据权利要求2-3中任一项所述的并行应用程序中的多个线程并行 访问共享数据结构的方法,其中,所述按值删除操作的优先级高于所述按 操作位置删除操作的优先级,所述按操作位置删除操作的优先级高于所述 按操作位置添加操作的优先级。
6.根据权利要求1-3中任一项所述的并行应用程序中的多个线程并行 访问共享数据结构的方法,其中,所述共享数据结构是基于数组的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810161517.3/1.html,转载请声明来源钻瓜专利网。