[发明专利]动态线程池构建方法、远程过程调用方法及装置有效
申请号: | 202310094496.2 | 申请日: | 2023-02-10 |
公开(公告)号: | CN115794449B | 公开(公告)日: | 2023-10-03 |
发明(设计)人: | 张立峰 | 申请(专利权)人: | 中科源码(成都)服务机器人研究院有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/50 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 封浪 |
地址: | 611130 四川省成都市温江区*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 线程 构建 方法 远程 过程 调用 装置 | ||
本发明公开了一种动态线程池构建方法、远程过程调用方法及装置。服务端设备依据配置的启动参数,启动服务端程序,该启动参数指示在不同时间下线程池所包含的线程数量。服务端程序在启动后,持续监听客户端设备的RPC请求,在监听到RPC请求时,分配socket,并动态绑定线程池中的线程来处理该RPC请求的任务,之后将执行结果反馈给客户端设备。本发明将分配的socket与线程池中的线程进行绑定时,执行该线程的resume()函数,以快速调度线程。本发明能够避免频发地创建和释放线程,同时提高服务端程序的响应速度,并且能够保证线程池的大小持续处于较优的状态,高效利用了服务端程序的内存。
技术领域
本发明涉及计算机通信领域,尤其是一种动态线程池构建方法,以及一种基于动态线程池的RPC(Remote Procedure Call,远程过程调用)方法及装置。
背景技术
通过RPC(Remote Procedure Call,远程过程调用),我们可以充分利用非共享内存的多处理器环境(例如通过局域网连接的多台应用服务器),这样可以简便地将你的应用分布在多台应用服务器上,应用程序就像运行在一个多处理器的计算机上一样。我们可以方便的实现过程代码共享,提高系统资源的利用率,也可以将以大量数值处理的操作放在处理能力较强的系统上运行,从而减轻前端机的负担。RPC作为普遍的C/S开发方法,开发效率高效、可靠。RPC方法的基本原则是:以模块调用的简单性忽略通讯的具体细节,以便程序员不用关心C/S之间的通讯协议,集中精力实现应用过程。
RPC需要兼具响应快、高并发两大性能。利用c/c++标准库函数写的RPC服务端程序既可以跨平台使用又可以提高程序的执行效率,当有客户端通过RPC发送请求时,RPC服务端程序就会监听到请求,响应请求然后分配socket的内存单元并初始化,创建一个线程以处理RPC请求的任务,在事件处理完成后该线程的生命周期便结束了。在传统的服务程序中,在我们要处理相关操作时创建一个线程,为这个线程的类分配内存空间并为该线程的运行分配栈空间,然后执行线程的run()函数为应用程序处理相关的事情,待事情处理完毕后,应用程序会关闭此线程并释放线程的所有资源,等到下次需要新的线程来响应应用程序的需求时再次创建线程分配资源。
然而,频繁的为RPC服务创建线程分配资源和关闭线程释放资源会大大增加CPU的开销,影响RPC的效率,严重的会使客户端RPC请求响应的实时性得不到保障,频繁的动态申请和释放内存也会增加内存碎片,并且可能还会有内存泄漏的风险。而针对该缺陷,人们想到了线程池的概念,即预先搭建包含某一数量线程的线程池,这些线程常驻内存,在需要处理RPC请求时,绑定某个线程处理任务事件,处理完成后,解除绑定,但不释放该线程的资源,该线程可以继续处理下一次RPC请求,以快速响应RPC请求,此类解决方案例如有文献CN106648940A所公开的一种远程过程调用方法及装置。
但是,上述构建线程池的方案的线程池容量是固定的,即无论活跃的客户端设备有多少,线程的数量是固定不变的,这在仅有少量活跃客户端设备(即RPC请求少)的情况下,会造成服务器设备内存资源的浪费。
发明内容
本发明的发明目的在于:针对上述存在的问题,提供一种动态线程池构建方法,以动态调整线程池中线程的数量,以在解决线程频繁创建和释放的问题的情况时,尽可能高效利用服务器设备的内存。
本发明采用的技术方案如下:
一种动态线程池构建方法,应用于服务器设备;所述方法包括:
接收配置的启动参数,依据所述启动参数启动服务端程序,启动服务端程序包括依据所述启动参数搭建线程池的过程;所述启动参数指示在不同时间下线程池所包含的线程数量。所谓的启动服务端程序,即从开启服务端程序到关闭前这期间的过程。
为解决上述全部或部分问题,本发明还提供了一种基于动态线程池的远程过程调用方法,该方法应用于服务器设备,所述服务器设备与客户端设备通信连接,所述方法包括:
接收配置的启动参数,所述启动参数指示在不同时间下线程池所包含的线程数量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科源码(成都)服务机器人研究院有限公司,未经中科源码(成都)服务机器人研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310094496.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用户画像分析方法及系统
- 下一篇:一种基于高阶函数的数据竞争检测方法