[发明专利]一种分布式系统中多线程同步的方法和系统有效
申请号: | 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、不支持灵活自定义的多条件的线程同步,即:各个线程可根据自定义的条件主动选择阻塞或者根据自定义的条件唤醒相应的线程。
发明内容
有鉴于此,本发明提供一种分布式系统中多线程同步的方法和系统,通过异步监听实现分布式系统中的多线程同步,能够支持自定义条件对线程同步的灵活控制,做到线程主动释放资源以及精确唤醒相关等待线程,资源利用率高。
为实现上述目的,根据本发明的一个方面,提供了一种分布式系统中多线程同步的方法。
一种分布式系统中多线程同步的方法,包括:接收线程的资源控制请求,所述请求具有参数,所述参数包括所述线程的标识和所请求资源的资源名;根据所述资源名读取所述资源的资源节点的数据;尝试锁定所述资源,其中当锁定失败,把该线程的标识置于该资源的等待队列以使得该线程进入阻塞状态,当锁定成功,则该线程控制该资源,并且待所述线程利用所述资源完成执行后,释放所述资源,并唤醒该资源的等待队列中的其他线程,其中被唤醒的线程能够尝试锁定所述资源。
可选地,读取所述资源的资源节点的数据的步骤包括:当所述资源存在,则直接获取所述资源的资源节点,否则根据所述资源名创建相应的资源节点,并读取所述资源节点的数据。
可选地,读取所述资源的资源节点的数据之后,还包括:对所述资源进行校验,以确定所述资源有效且未被锁定。
可选地,还包括:通过在所述资源节点下创建资源锁定节点来锁定所述资源,并通过删除所述资源锁定节点来释放所述资源。
可选地,所述资源节点下包含如下部分,其中,同步队列,所述同步队列包括等待控制所述资源的线程;占用线程,所述占用线程是当前控制所述资源的线程;自定义条件集合,所述自定义条件集合中的每个条件具有等待队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610256779.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多功能计算机主机
- 下一篇:多媒体中控一体机的壳体和多媒体中控一体机