[发明专利]一种分布式系统中多线程同步的方法和系统有效
申请号: | 201610256779.2 | 申请日: | 2016-04-21 |
公开(公告)号: | CN105700939B | 公开(公告)日: | 2019-07-02 |
发明(设计)人: | 魏亚文;孙政 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50;G06F9/52;G06F9/54 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;姜劲 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 系统 多线程 同步 方法 | ||
1.一种分布式系统中多线程同步的方法,其特征在于,包括:
接收线程的资源控制请求,所述请求具有参数,所述参数包括所述线程的标识和所请求资源的资源名;
根据所述资源名读取所述资源的资源节点的数据;
尝试锁定所述资源,其中当锁定失败,把该线程的标识置于该资源的等待队列以使得该线程进入阻塞状态,当锁定成功,则该线程控制该资源,并且待所述线程利用所述资源完成执行后,释放所述资源,并通过回调监听机制唤醒该资源的等待队列中的其他线程,其中被唤醒的线程能够尝试锁定所述资源,其中,所述资源节点下包含自定义条件集合,所述自定义条件集合中的每个条件具有等待队列,线程在控制所述资源后,如果发现所述自定义条件集合中的条件不满足,则释放所述资源并进入阻塞状态,且该线程的标识被置于该条件的等待队列,当所述自定义条件集合中的条件满足后,把该条件的等待队列中的线程从该条件的等待队列移动到所述资源的等待队列。
2.根据权利要求1所述的方法,其特征在于,读取所述资源的资源节点的数据的步骤包括:
当所述资源存在,则直接获取所述资源的资源节点,否则根据所述资源名创建相应的资源节点,并读取所述资源节点的数据。
3.根据权利要求1所述的方法,其特征在于,读取所述资源的资源节点的数据之后,还包括:
对所述资源进行校验,以确定所述资源有效且未被锁定。
4.根据权利要求1所述的方法,其特征在于,还包括:通过在所述资源节点下创建资源锁定节点来锁定所述资源,并通过删除所述资源锁定节点来释放所述资源。
5.根据权利要求2所述的方法,其特征在于,所述资源节点下包含如下部分,其中,
同步队列,所述同步队列包括等待控制所述资源的线程;
占用线程,所述占用线程是当前控制所述资源的线程。
6.一种分布式系统中多线程同步的系统,其特征在于,包括:
用于接收线程的资源控制请求的装置,所述请求具有参数,所述参数包括所述线程的标识和所请求资源的资源名;
用于根据所述资源名读取所述资源的资源节点的数据的装置;
用于尝试锁定所述资源的装置,其中当锁定失败,把该线程的标识置于该资源的等待队列以使得该线程进入阻塞状态,当锁定成功,则该线程控制该资源,并且待所述线程利用所述资源完成执行后,释放所述资源,并通过回调监听机制唤醒该资源的等待队列中的其他线程,其中被唤醒的线程能够尝试锁定所述资源,其中,所述资源节点下包含自定义条件集合,所述自定义条件集合中的每个条件具有等待队列,线程在控制所述资源后,如果发现所述自定义条件集合中的条件不满足,则释放所述资源并进入阻塞状态,且该线程的标识被置于该条件的等待队列,当所述自定义条件集合中的条件满足后,把该条件的等待队列中的线程从该条件的等待队列移动到所述资源的等待队列。
7.根据权利要求6所述的系统,其特征在于,所述资源节点下包含如下部分,其中,
同步队列,所述同步队列包括等待控制所述资源的线程;
占用线程,所述占用线程是当前控制所述资源的线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610256779.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多功能计算机主机
- 下一篇:多媒体中控一体机的壳体和多媒体中控一体机