[发明专利]IO线程执行方法及装置有效
| 申请号: | 201810018487.4 | 申请日: | 2018-01-09 |
| 公开(公告)号: | CN110018880B | 公开(公告)日: | 2023-04-14 |
| 发明(设计)人: | 王晓龙 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/48 |
| 代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁;窦晓慧 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | io 线程 执行 方法 装置 | ||
1.一种IO线程执行方法,其特征在于,包括:
接收上传任务或者延迟加载任务;
通过一致性哈希算法,选择与所述上传任务或者延迟加载任务对应的线程维护者;
在所述线程维护者维护的输入输出线程上,以协程机制添加所述上传或者延迟加载任务,其中,一个程序包括多个协程,所述协程为操作系统用户态的多任务机制;
在所述输入输出线程上执行所述上传或者延迟加载任务,在多任务执行时,同一个输入输出线程在一个任务处理完成之前允许处理其他任务,通过协程机制实现在同一个输入输出线程上的任务分时复用。
2.根据权利要求1所述的IO线程执行方法,其特征在于,所述通过一致性哈希算法,选择与所述上传任务或者延迟加载任务对应的线程维护者方法步骤之后还包括:
在所述线程维护者维护的输入输出线程上,将所述上传任务或者延迟加载任务添加到与所述线程维护者对应的任务地图。
3.根据权利要求2所述的IO线程执行方法,其特征在于,在所述任务地图上执行任务的删除操作。
4.根据权利要求2所述的IO线程执行方法,其特征在于,所述通过一致性哈希算法,选择与所述上传任务或者延迟加载任务对应的线程维护者方法步骤之前还包括:
初始化所述线程维护者列表。
5.根据权利要求4所述的IO线程执行方法,其特征在于,所述初始化所述线程维护者列表步骤的实现方式包括:
每一个线程维护者对应一个输入输出线程,每一个线程维护者维护一个任务地图。
6.根据权利要求4所述的IO线程执行方法,其特征在于,所述方法还包括:
获取特定延迟加载任务的输入输出候补列表上的延迟加载读请求;
在所述特定延迟加载任务执行过程中,优先处理所述延迟加载读请求。
7.根据权利要求6所述的IO线程执行方法,其特征在于,所述获取所述延迟加载任务的输入输出候补列表上的延迟加载读请求步骤之前还包括:
接收所述特定延迟加载任务的延迟加载读请求;
通过一致性哈希算法,选择与所述延迟加载读请求对应的所述线程维护者;
在所述线程维护者维护的输入输出线程上,以协程机制获取对应的所述特定延迟加载任务;
将所述延迟加载读请求添加到所述特定延迟加载任务的输入输出候补列表上去。
8.根据权利要求7所述的IO线程执行方法,其特征在于,在所述通过一致性哈希算法,选择与所述延迟加载读请求对应的所述线程维护者步骤之后还包括:
通过所述线程维护者列表中的相关数据,判断所述延迟加载读请求要读取的内容是在云服务器还是本地,若在云服务器,则进入下一步骤在所述线程维护者维护的输入输出线程上,以协程机制获取对应的所述特定延迟加载任务。
9.一种IO线程执行装置,其特征在于,包括:
任务接收模块,用于接收上传任务或者延迟加载任务;
线程维护者选择模块,用于通过一致性哈希算法,选择与所述上传任务或者延迟加载任务对应的线程维护者;
任务添加模块,用于在所述线程维护者维护的输入输出线程上,以协程机制添加所述上传或者延迟加载任务,其中,一个程序包括多个协程,所述协程为操作系统用户态的多任务机制;
任务执行模块,用于在所述输入输出线程上执行所述上传或者延迟加载任务,在多任务执行时,同一个输入输出线程在一个任务处理完成之前允许处理其他任务,通过协程机制实现在同一个输入输出线程上的任务分时复用。
10.根据权利要求9所述的IO线程执行装置,其特征在于,所述装置还包括:
任务地图添加模块,用于在所述线程维护者维护的输入输出线程上,将所述上传任务或者延迟加载任务添加到与所述线程维护者对应的任务地图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810018487.4/1.html,转载请声明来源钻瓜专利网。





