[发明专利]多线程调用方法、装置、计算机系统及存储介质在审
申请号: | 202010102335.X | 申请日: | 2020-02-19 |
公开(公告)号: | CN111324465A | 公开(公告)日: | 2020-06-23 |
发明(设计)人: | 吴贞海 | 申请(专利权)人: | 深圳壹账通智能科技有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/50;G06F9/448 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 程超 |
地址: | 518052 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多线程 调用 方法 装置 计算机系统 存储 介质 | ||
1.一种多线程调用方法,其特征在于,包括以下步骤:
建立一任务队列,所述任务队列至少包括一个队列元素,所述队列元素包括采用c语言格式的待调用python算法模型的目标函数和参数;
提供一任务调用线程,所述任务调用线程用于查询所述任务队列中的队列元素,并提取出所述队列元素;
根据获取的调用启动指令调用所述任务调用线程以提取出所述队列元素;
对提取出的所述队列元素进行解析并得出目标函数和参数,按照预设的c语言-python调用方法调用python算法模型。
2.根据权利要求1所述的多线程调用方法,其特征在于,所述建立一任务队列包括以下步骤:
将容量参数分配设定为N个元素;
设定元素长度为0,设定读可用信号量为0,设定写可用信号量为N,初始化数组读写保护锁。
3.根据权利要求1所述的多线程调用方法,其特征在于,所述任务队列中的队列元素入队列过程包括以下步骤:
当写可用信号量大于0时,申请一个元素读写保护锁,并减少一个写可用信号量;
将队列元素添加进任务队列中,并增加一个读可用信号量,及释放元素读写保护锁;
循环执行上述步骤,直至判断出写可用信号为0。
4.根据权利要求1所述的多线程调用方法,其特征在于,所述根据获取的调用启动指令调用所述任务调用线程以提取出所述队列元素包括以下步骤:
检查任务调用线程是否需要退出,若是,则结束执行;
若否,则检查读可用信号量是否大于0,若大于0,则申请元素读写保护锁,并减少一个读可用信号量;
获取到一个队列元素,并增加一个写可用信号量;
释放元素读写保护锁,循环检查读可用信号量是否大于0,循环提取队列元素直至全部所述队列元素提取完成。
5.根据权利要求1所述的多线程调用方法,其特征在于,所述任务队列通过push方式投递所述队列元素。
6.根据权利要求1所述的多线程调用方法,其特征在于,所述任务队列通过pop方式投递所述队列元素。
7.根据权利要求1所述的多线程调用方法,其特征在于,所述预设的c语言-python调用方法包括以下步骤:
将c语言数据转换成对应的python列表对象;
读取python程序文件以获取待调用的函数对象;
通过python_call object调用python程序文件中的函数功能。
8.一种多线程调用装置,其特征在于,包括:
任务队列模块,用于将至少一个队列元素投递到一任务队列中,所述队列元素包括采用c语言格式的待调用python算法模型的目标函数和参数;
任务调用线程模块,采用一任务调用线程查询所述任务队列中的队列元素,并提取出所述队列元素,然后解析所述队列元素得到目标函数和参数;
调用模块,用于将得到的目标函数和参数按照预设的c语言-python调用方法调用python算法模型。
9.一种计算机系统,其包括多个计算机设备,各计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述多个计算机设备的处理器执行所述计算机程序时共同实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述存储介质存储的所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳壹账通智能科技有限公司,未经深圳壹账通智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010102335.X/1.html,转载请声明来源钻瓜专利网。