CN113032123B - 一种远程npl运行环境的线程调度方法、系统及相关装置 - Google Patents
一种远程npl运行环境的线程调度方法、系统及相关装置 Download PDFInfo
- Publication number
- CN113032123B CN113032123B CN202110361516.9A CN202110361516A CN113032123B CN 113032123 B CN113032123 B CN 113032123B CN 202110361516 A CN202110361516 A CN 202110361516A CN 113032123 B CN113032123 B CN 113032123B
- Authority
- CN
- China
- Prior art keywords
- server
- client
- npl
- message
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000005538 encapsulation Methods 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种远程NPL运行环境的线程调度方法、系统及相关装置,用于实现在远程NPL运行环境上执行指定的文件,并减少出现线程没有被及时调度所导致的文件执行效率低的问题,由此提升了文件的执行效率,提升用户体验。本申请方法包括:客户端接收线程启动指令,并根据线程启动指令启动第一线程,第一线程为客户端上的线程,第一线程用于远程调度服务器执行目标文件;客户端与服务器建立TCP连接;客户端基于目标文件生成NPL消息,NPL消息包含目标文件的文件名称;客户端对NPL消息进行TCP封装,得到目标消息;客户端通过TCP连接将目标消息发送至服务器,以使得服务器根据目标消息执行目标文件。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种远程NPL运行环境的线程调度方法、系统及相关装置。
背景技术
线程是进程中的一个实体,不拥有系统资源,只有执行必须的一些数据结构,线程可以创建和撤销,从而实现程序的并发执行。而线程调度是指按照特定机制为多个线程分配CPU的使用权,在现有技术的线程调度中,用户可以通过指定的目标线程执行某个指定的文件,完成调度后该文件就会立刻被执行。
在某些情况下用户并不希望该文件被立即执行,则可以通过为目标线程调度设置一个定时器来实现延缓执行,当定时器达到用户规定的时刻时,该目标线程才会被调度,文件才被执行,但是用户所规定的时刻可能同时存在很多线程都在等待被调度,这就可能会影响目标线程的及时调度,从而影响文件的执行效率,影响用户体验。
发明内容
本申请提供了一种远程NPL运行环境的线程调度方法、系统及相关装置,用于实现在远程NPL运行环境上执行指定的文件,并减少出现线程没有被及时调度所导致的文件执行效率低的问题,由此提升了文件的执行效率,提升用户体验。
本申请第一方面提供了一种远程NPL运行环境的线程调度方法,包括:
客户端接收线程启动指令,并根据所述线程启动指令启动第一线程,所述第一线程为所述客户端上的线程,所述第一线程用于远程调度服务器执行目标文件;
所述客户端与所述服务器建立TCP连接;
所述客户端基于所述目标文件生成NPL消息,所述NPL消息包含所述目标文件的文件名称;
所述客户端对所述NPL消息进行TCP封装,得到目标消息;
所述客户端通过所述TCP连接将所述目标消息发送至所述服务器,以使得所述服务器根据所述目标消息执行所述目标文件。
可选的,所述客户端与服务器建立TCP连接包括:
所述客户端向所述服务器发送TCP连接请求,以使得所述服务器根据所述TCP连接请求判断所述客户端是否存在于所述服务器的认证连接列表中;
若所述服务器确定所述客户端存在于所述服务器的认证连接列表中,则所述客户端与所述服务器建立TCP连接。
本申请第二方面提供了一种远程NPL运行环境的线程调度方法,包括:
服务器与客户端建立TCP连接;
所述服务器通过所述TCP连接接收所述客户端发送的目标消息;
所述服务器对所述目标消息进行拆包处理,恢复NPL消息,所述NPL消息包含目标文件的文件名称;
所述服务器将所述NPL消息插入第二线程的输入消息队列,所述第二线程为服务器上的线程,所述输入消息队列用于管理所述NPL消息;
所述服务器执行所述NPL消息。
可选的,所述服务器与客户端建立TCP连接包括:
所述服务器接收客户端发送的TCP连接请求;
所述服务器根据所述TCP连接请求判断所述客户端是否存在于所述服务器的认证连接列表中,所述认证连接列表中维护有允许与所述服务器建立TCP连接的客户端名单;
若存在,则所述服务器与客户端建立TCP连接。
可选的,在所述服务器判断所述客户端是否存在于所述服务器的认证连接列表中之后,所述方法还包括:
若不存在,则所述服务器与所述客户端建立虚拟连接,所述虚拟连接用于检测所述服务器与所述客户端的连接是否可靠;
若所述服务器确定与所述客户端的连接可靠,则所述服务器将所述客户端添加至所述认证连接列表中,并与所述客户端建立TCP连接。
本申请第三方面提供了一种客户端,包括:
接收启动单元,用于接收线程启动指令,并根据所述线程启动指令启动第一线程,所述第一线程为所述客户端上的线程,所述第一线程用于远程调度服务器执行目标文件;
第一连接单元,用于与所述服务器建立TCP连接;
生成单元,用于基于所述目标文件生成NPL消息,所述NPL消息包含所述目标文件的文件名称;
封装单元,用于对所述NPL消息进行TCP封装,得到目标消息;
发送单元,用于通过所述TCP连接将所述目标消息发送至所述服务器,以使得所述服务器根据所述目标消息执行所述目标文件。
可选的,所述第一连接单元包括:
发送模块,用于向所述服务器发送TCP连接请求,以使得所述服务器根据所述TCP连接请求判断所述客户端是否存在于所述服务器的认证连接列表中;
第一连接模块,用于当所述服务器确定所述客户端存在于所述服务器的认证连接列表中时,与所述服务器建立TCP连接。
本申请第四方面提供了一种服务器,包括:
第二连接单元,用于与客户端建立TCP连接;
接收单元,用于通过所述TCP连接接收所述客户端发送的目标消息;
拆包单元,用于对所述目标消息进行拆包处理,恢复NPL消息,所述NPL消息包含目标文件的文件名称;
插入单元,用于将所述NPL消息插入第二线程的输入消息队列,所述第二线程为服务器上的线程,所述输入消息队列用于管理所述NPL消息;
执行单元,用于执行所述NPL消息。
可选的,所述第二连接单元包括:
接收模块,用于接收客户端发送的TCP连接请求;
判断模块,用于根据所述TCP连接请求判断所述客户端是否存在于所述服务器的认证连接列表中,所述认证连接列表中维护有允许与所述服务器建立TCP连接的客户端名单;
第二连接模块,用于当所述判断模块确定所述客户端存在于所述服务器的认证连接列表中时,则与客户端建立TCP连接。
检测模块,用于当所述判断模块确定所述客户端不存在于所述服务器的认证连接列表中时,与所述客户端建立虚拟连接,所述虚拟连接用于检测所述服务器与所述客户端的连接是否可靠;
添加模块,用于当所述检测模块确定与所述客户端的连接可靠时,将所述客户端添加至所述认证连接列表中,并与所述客户端建立TCP连接。
本申请第五方面提供了一种远程NPL运行环境的线程调度系统,包括:
客户端与服务器;
所述客户端接收线程启动指令,并根据所述线程启动指令启动第一线程,所述第一线程为所述客户端上的线程,所述第一线程用于远程调度服务器执行目标文件;
所述客户端与所述服务器建立TCP连接;
所述客户端基于所述目标文件生成NPL消息,所述NPL消息包含所述目标文件的文件名称;
所述客户端对所述NPL消息进行TCP封装,得到目标消息;
所述客户端通过所述TCP连接将所述目标消息发送至所述服务器;
所述服务器对所述目标消息进行拆包处理,恢复所述NPL消息,所述NPL消息包含目标文件的文件名称;
所述服务器将所述NPL消息插入第二线程的输入消息队列,所述第二线程为服务器上的线程,所述输入消息队列用于管理所述NPL消息;
所述服务器执行所述NPL消息。
本申请第六方面提供了一种远程NPL运行环境的线程调度装置,所述装置包括:
处理器、存储器、输入输出单元以及总线;
所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
所述存储器保存有程序,所述处理器调用所述程序以执行第一方面和第二方面以及第一方面和第二方面中任一项可选的远程NPL运行环境的线程调度方法。
本申请第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质上保存有程序,所述程序在计算机上执行时执行第一方面和第二方面以及第一方面和第二方面中任一项可选的远程NPL运行环境的线程调度方法。
从以上技术方案可以看出,本申请具有以下优点:
在本发明中,可以实现在远程NPL运行环境上执行指定的目标文件,其中调度者是客户端,被调度者是服务器。具体的,当用户需要远程调度服务器执行目标文件时,可以通过指定的函数在客户端上启动第一线程,第一线程启动后,客户端会将该目标文件包装为一个NPL消息,然后将该NPL消息通过TCP连接发送至服务器,服务器再将该NPL消息插入第二线程的输入消息队列中,等待被执行。服务器按照输入消息队列执行顺序执行,执行到该NPL消息时,直接对目标文件进行处理。
在此过程中,无需临时调度线程,从而减少出现线程没有被及时调度所导致的文件执行效率低的问题,由此提升了文件的执行效率,提升用户体验。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的远程NPL运行环境的线程调度方法一个实施例流程示意图;
图2为本申请提供的远程NPL运行环境的线程调度方法另一个实施例流程示意图;
图3为本申请提供的客户端一个实施例结构示意图;
图4为本申请提供的服务器一个实施例结构示意图;
图5为本申请提供的远程NPL运行环境的线程调度系统一个实施例结构示意图;
图6为本申请提供的远程NPL运行环境的线程调度装置一个实施例结构示意图。
具体实施方式
本申请提供了一种远程NPL运行环境的线程调度方法、系统及相关装置,用于实现在远程NPL运行环境上执行指定的文件,并减少出现线程没有被及时调度所导致的文件执行效率低的问题,由此提升了文件的执行效率,提升用户体验。
请参阅图1,图1为本申请提供的远程NPL运行环境的线程调度方法的一个实施例,该方法包括:
101、客户端接收线程启动指令,并根据线程启动指令启动第一线程,第一线程为客户端上的线程,第一线程用于远程调度服务器执行目标文件;
在NPL运行环境中,可以实现在远程NPL运行环境上执行指定的文件。在一次远程调度中涉及到两个NPL运行环境,本申请中的客户端是调度者,而本申请中的服务器是则被调度者。这种跨NPL运行环境的线程调度功能的实现依赖于NPL.activate函数,使用该函数的语法如下:
NPL.activate(url,msg)
上述语法中,参数url是指一个NPL文件的url地址,参数msg是指发送给url地址上的数据,用户通过调用NPL.activate函数就能够调用指定的目标线程,并通过该目标线程执行指定的目标文件。
参数url代表一个NPL文件的url地址,参数url完整的格式为:
(sRuntimeStateName|gl)sNID:sRelativePath@DNSServerName
其中,sRuntimeStateName是所选择线程的名称,如果选择不写sRuntimeStateName而是只写gl,那么表示本地当前的线程。
sNID表示NPL运行环境的标识符,在本申请中,SNID则为远程NPL运行环境(服务器)的标识符。
sRelativePath为文件的相对路径,一般以main文件夹目录作为参考。
@sDNSServerName表示DNS服务器的名称。
需要说明的是,NPL运行环境对应着CNPLRuntime类,CNPLRuntime类中主要有以下属性:一个线程向量,用以储存当前NPL运行环境中的所有线程;一个CNPLNetServer类,如果调用该类中的start()函数,则会启动服务器(即监听一个端口号),那么该NPL运行环境也就变成了服务器端,否则就是客户端。实现远程调度的前提是作为被调度端的NPL运行环境需要开启相应的服务器端,以便能够被客户端访问到。开启服务器端可以用如下函数:
NPL.StartNetServer(ip,port)函数,参数ip为ip地址,参数port为端口号。NPL引擎在设计的时候都带有一个服务器端,对应与源代码中的CNPLNetServer类,需要提供服务器的功能的时候就开启。
当用户调用NPL.activate函数之后,客户端接收线程启动指令,并根据该线程启动指令启动客户端上的第一线程,该第一线程用于远程调度服务器执行服务器上的目标文件,该第一线程由NPL.activate函数所指定。
102、客户端与服务器建立TCP连接;
在客户端上的第一线程启动后,客户端首先会和服务器建立一条TCP连接,以便客户端通过该TCP连接与服务器进行信息传输。
103、客户端基于目标文件生成NPL消息,NPL消息包含目标文件的文件名称;
需要说明的是,由于是远程调度,所以本申请中的目标文件是指远程NPL运行环境(服务器)上的文件。要想让服务器上的文件能够被其他NPL运行环境(客户端)访问到,必须先把该文件添加到当前NPL环境的公共文件列表中,这个公共文件列表由服务器的调度器维护。将文件添加到文件列表可以借助NPL.AddPublicFile(filename,id)函数,Filename为文件名,id为文件的编号。如:
->NPL.AddPublicFile(“script/test/test.lua”,1)表示将test.lua文件加入公共文件列表,并且将编号设为1。
客户端可以通过该公共文件列表访问到目标文件的文件名称,客户端在获取到目标文件的文件名称后,则使用该名称构造一个NPL消息。
104、客户端对NPL消息进行TCP封装,得到目标消息;
在客户端通过TCP连接向服务器发送NPL消息前,需要对该消息进行TCP封装,加上TCP的包头和其他TCP协议字段。因此客户端需要先对构造出的NPL消息进行TCP封装,以得到目标消息。
105、客户端通过TCP连接将目标消息发送至服务器;
客户端将该目标消息,通过客户端与服务器之间的TCP连接发送至服务器。
106、服务器对目标消息进行拆包处理,恢复NPL消息,NPL消息包含目标文件的文件名称;
服务器在接收到该目标消息后,由于目标消息是经过TCP封装的消息,因此服务器需要先对该目标消息进行拆包处理,从而恢复出该NPL消息。
107、服务器将NPL消息插入第二线程的输入消息队列,第二线程为服务器上的线程,输入消息队列用于管理NPL消息;
服务器将恢复出的NPL消息插入第二线程的输入消息队列中,NPL消息在该输入消息队列中等待被激活和执行。第二线程的输入消息队列管理着该线程需要处理的NPL信息队列,越靠前的消息将越先被处理。
108、服务器执行NPL消息。
服务器按照队列顺序取出并处理输入消息队列中的消息,当执行到该NPL消息时,服务器则执行目标文件,由此实现客户端对服务器上目标文件的远程调度。
在本实施例中,可以实现在远程NPL运行环境上执行指定的目标文件,其中调度者是客户端,被调度者是服务器。具体的,当用户需要远程调度服务器执行目标文件时,可以通过指定的函数在客户端上启动第一线程,第一线程启动后,客户端会将该目标文件包装为一个NPL消息,然后将该NPL消息通过TCP连接发送至服务器,服务器再将该NPL消息插入第二线程的输入消息队列中,等待被执行。服务器按照输入消息队列执行顺序执行,执行到该NPL消息时,直接对目标文件进行处理。
在此过程中,无需临时调度线程,从而减少出现线程没有被及时调度所导致的文件执行效率低的问题,由此提升了文件的执行效率,提升用户体验。
请参阅图2,图2为本申请提供的远程NPL运行环境的线程调度方法的另一个实施例,该方法包括:
201、客户端接收线程启动指令,并根据线程启动指令启动第一线程,第一线程为客户端上的线程,第一线程用于远程调度服务器执行目标文件;
本实施例中,步骤201与前述实施例步骤101类似,此处不再赘述。
202、客户端向服务器发送TCP连接请求;
在客户端上的第一线程启动后,客户端首先需要和服务器建立一条TCP连接,具体的,客户端需要先向服务器发送TCP连接请求,该请求中携带有客户端的NPL标识符,即客户端的sNID。
203、服务器根据TCP连接请求判断客户端是否存在于服务器的认证连接列表中,若不存在,则执行步骤204,若存在,则直接执行步骤206;
一个服务器端的NPL运行环境可能需要和不止一个的客户端NPL运行环境进行交互,这时候就涉及服务器端的NPL运行环境对客户端的NPL标识符的管理问题。
为了解决上述问题,可以在服务器端中维护一个认证连接列表,该认证连接列表用于管理允许与服务器进行TCP连接的客户端名单,列表中的每条记录可以是一个从服务器TCP连接到客户端sNID的键值对,服务器在接收到客户端发送的TCP连接请求后,根据请求中携带的客户端sNID在该认证连接列表中匹配,如果匹配成功则表示客户端存在于服务器的认证连接列表中,此时执行步骤206以建立客户端与服务器之间的TCP连接,如果匹配失败则表示客户端不存在于服务器的认证连接列表这种,此时执行步骤204以进一步确定是否需要建立连接。
204、则服务器与客户端建立虚拟连接,虚拟连接用于检测服务器与客户端的连接是否可靠;
如果服务器确定客户端不存在于服务器的认证连接列表中,则与客户端建立一条虚拟连接,在这个虚拟连接上并不传输真实的数据,而是通过该虚拟连接来检测服务器与客户端之间的连接是否可靠,具体可以通过一些网络质量参数的阈值来确定连接是否可靠,比如通过该连接的丢包率、时延、带宽、QoS、重传机制、心跳检测机制等信息中的一项或多项指标来检测。当丢包率低、或时延低、或带宽高、或QoS指标高、或具有重传机制、或具有心跳检测机制等,就认为连接可靠,相反则不可靠。
205、若服务器确定与客户端的连接可靠,则服务器将客户端添加至认证连接列表中;
当服务器确定与客户端之间的虚拟连接可靠时,则将该虚拟连接转换为实际连接,并将这条连接添加到服务器所维护的认证连接列表中。
需要说明的是,该认证连接列表还可以由管理人员手动配置,比如在公司局域网中,管理人员可以将客户端的连接信息手动加入该列表,由此确保未加入列表的客户端不能连接服务器,从而保证安全。同样的,还可以从认证连接列表中删除指定的记录,由此来拒绝一些客户端的连接。
206、服务器与客户端建立TCP连接;
当服务器确定客户端存在于服务器的认证连接列表中时,则与该客户端建立TCP连接。
207、客户端基于目标文件生成NPL消息,NPL消息包含目标文件的文件名称;
208、客户端对NPL消息进行TCP封装,得到目标消息;
209、客户端通过TCP连接将目标消息发送至服务器;
210、服务器对目标消息进行拆包处理,恢复NPL消息,NPL消息包含目标文件的文件名称;
211、服务器将NPL消息插入第二线程的输入消息队列,第二线程为服务器上的线程,输入消息队列用于管理NPL消息;
212、服务器执行NPL消息。
本实施例中,步骤207至步骤211与前述实施例步骤103至步骤108类似,此处不再赘述。
在本实施例中,由于一个服务器端的NPL运行环境可能需要和不止一个的客户端NPL运行环境进行交互,所以,服务器端中可以维护一个认证连接列表,只有该列表中的客户端才能够与服务器建立TCP连接。
在客户端与服务器成功建立TCP连接后,客户端会将该目标文件包装为一个NPL消息,然后将该NPL消息通过TCP连接发送至服务器,服务器再将该NPL消息插入第二线程的输入消息队列中,等待被执行。服务器按照输入消息队列执行顺序执行,执行到该NPL消息时,直接对目标文件进行处理。
在此过程中,无需临时调度线程,从而减少出现线程没有被及时调度所导致的文件执行效率低的问题,由此提升了文件的执行效率,提升用户体验。
请参阅图3,图3为本申请提供的客户端一个实施例,该客户端包括:
接收启动单元301,用于接收线程启动指令,并根据线程启动指令启动第一线程,第一线程为客户端上的线程,第一线程用于远程调度服务器执行目标文件;
第一连接单元302,用于与服务器建立TCP连接;
生成单元303,用于基于目标文件生成NPL消息,NPL消息包含目标文件的文件名称;
封装单元304,用于对NPL消息进行TCP封装,得到目标消息;
发送单元305,用于通过TCP连接将目标消息发送至服务器,以使得服务器根据目标消息执行目标文件。
可选的,第一连接单元302包括:
发送模块3021,用于向服务器发送TCP连接请求,以使得服务器根据TCP连接请求判断客户端是否存在于服务器的认证连接列表中;
第一连接模块3022,用于当服务器确定客户端存在于服务器的认证连接列表中时,与服务器建立TCP连接。
本实施例提供的客户端中,各单元及模块的功能与前述图1和2所示方法实施例中的步骤对应,此处不再赘述。
请参阅图4,图4为本申请提供的服务器一个实施例,该服务器包括:
第二连接单元401,用于与客户端建立TCP连接;
接收单元402,用于通过TCP连接接收客户端发送的目标消息;
拆包单元403,用于对目标消息进行拆包处理,恢复NPL消息,NPL消息包含目标文件的文件名称;
插入单元404,用于将NPL消息插入第二线程的输入消息队列,第二线程为服务器上的线程,输入消息队列用于管理NPL消息;
执行单元405,用于执行NPL消息。
可选的,第二连接单元401包括:
接收模块4011,用于接收客户端发送的TCP连接请求;
判断模块4012,用于根据TCP连接请求判断客户端是否存在于服务器的认证连接列表中,认证连接列表中维护有允许与服务器建立TCP连接的客户端名单;
第二连接模块4013,用于当判断模块4012确定客户端存在于服务器的认证连接列表中时,则与客户端建立TCP连接。
检测模块4014,用于当判断模块4012确定客户端不存在于服务器的认证连接列表中时,与客户端建立虚拟连接,虚拟连接用于检测服务器与客户端的连接是否可靠;
添加模块4015,用于当检测模块4014确定与客户端的连接可靠时,将客户端添加至认证连接列表中,并调用第二连接模块4013与客户端建立TCP连接。
本实施例提供的服务器中,各单元及模块的功能与前述图1和图2所示方法实施例中的步骤对应,此处不再赘述。
请参阅图5,图5为本申请提供的远程NPL运行环境的线程调度系统一个实施例,该系统包括:客户端501和服务器502;
客户端501接收线程启动指令,并根据线程启动指令启动第一线程,第一线程为客户端501上的线程,第一线程用于远程调度服务器执行目标文件;
客户端501与服务器502建立TCP连接;
客户端501基于目标文件生成NPL消息,NPL消息包含目标文件的文件名称;
客户端501对NPL消息进行TCP封装,得到目标消息;
客户端501通过TCP连接将目标消息发送至服务器502;
服务器502对目标消息进行拆包处理,恢复NPL消息,NPL消息包含目标文件的文件名称;
服务器502将NPL消息插入第二线程的输入消息队列,第二线程为服务器上的线程,输入消息队列用于管理NPL消息;
服务器502执行NPL消息。
本实施例系统中,客户端501和服务器502的功能与前述图1和2所示方法实施例中的步骤对应,此处不再赘述。
本申请还提供了一种远程NPL运行环境的线程调度装置,请参阅图6,图6为本申请提供的远程NPL运行环境的线程调度装置一个实施例,该装置包括:
处理器601、存储器602、输入输出单元603、总线604;
处理器601与存储器602、输入输出单元603以及总线604相连;
存储器602保存有程序,处理器601调用程序以执行如上任一远程NPL运行环境的线程调度方法。
本申请还涉及一种计算机可读存储介质,计算机可读存储介质上保存有程序,其特征在于,当程序在计算机上运行时,使得计算机执行如上任一远程NPL运行环境的线程调度方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (7)
1.一种远程NPL运行环境的线程调度方法,其特征在于,所述方法包括:
客户端接收线程启动指令,并根据所述线程启动指令启动第一线程,所述第一线程为所述客户端上的线程,所述第一线程用于远程调度服务器执行目标文件;
所述客户端与所述服务器之间建立TCP连接;
所述客户端基于所述目标文件生成NPL消息,所述NPL消息包含所述目标文件的文件名称;
所述客户端对所述NPL消息进行TCP封装,得到目标消息;
所述客户端通过所述TCP连接将所述目标消息发送至所述服务器;
所述服务器对所述目标消息进行拆包处理,恢复NPL消息,所述NPL消息包含目标文件的文件名称;
所述服务器将所述NPL消息插入第二线程的输入消息队列,所述第二线程为服务器上的线程,所述输入消息队列用于管理所述NPL消息;
所述服务器执行所述NPL消息,以使得所述服务器在不临时调度线程的前提下根据所述目标消息直接执行所述目标文件。
2.根据权利要求1所述的方法,其特征在于,所述客户端与服务器建立TCP连接包括:
所述客户端向所述服务器发送TCP连接请求,以使得所述服务器根据所述TCP连接请求判断所述客户端是否存在于所述服务器的认证连接列表中;
若所述服务器确定所述客户端存在于所述服务器的认证连接列表中,则所述客户端与所述服务器建立TCP连接。
3.根据权利要求1所述的方法,其特征在于,所述服务器与客户端建立TCP连接包括:
所述服务器接收客户端发送的TCP连接请求;
所述服务器根据所述TCP连接请求判断所述客户端是否存在于所述服务器的认证连接列表中,所述认证连接列表中维护有允许与所述服务器建立TCP连接的客户端名单;
若存在,则所述服务器与客户端建立TCP连接。
4.根据权利要求3所述的方法,其特征在于, 在所述服务器判断所述客户端是否存在于所述服务器的认证连接列表中之后,所述方法还包括:
若不存在,则所述服务器与所述客户端建立虚拟连接,所述虚拟连接用于检测所述服务器与所述客户端的连接是否可靠;
若所述服务器确定与所述客户端的连接可靠,则所述服务器将所述客户端添加至所述认证连接列表中,并与所述客户端建立TCP连接。
5.一种远程NPL运行环境的线程调度系统,其特征在于,所述系统包括:客户端与服务器;
所述客户端接收线程启动指令,并根据所述线程启动指令启动第一线程,所述第一线程为所述客户端上的线程,所述第一线程用于远程调度服务器执行目标文件;
所述客户端与所述服务器之间建立TCP连接;
所述客户端基于所述目标文件生成NPL消息,所述NPL消息包含所述目标文件的文件名称;
所述客户端对所述NPL消息进行TCP封装,得到目标消息;
所述客户端通过所述TCP连接将所述目标消息发送至所述服务器;
所述服务器对所述目标消息进行拆包处理,恢复所述NPL消息,所述NPL消息包含目标文件的文件名称;
所述服务器将所述NPL消息插入第二线程的输入消息队列,所述第二线程为服务器上的线程,所述输入消息队列用于管理所述NPL消息;
所述服务器执行所述NPL消息,以使得所述服务器在不临时调度线程的前提下根据所述目标消息直接执行所述目标文件。
6.一种远程NPL运行环境的线程调度装置,其特征在于,所述装置包括:
处理器、存储器、输入输出单元以及总线;
所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
所述存储器保存有程序,所述处理器调用所述程序以执行如权利要求1至4中任一项所述方法。
7.一种计算机可读存储介质,所述计算机可读存储介质上保存有程序,所述程序在计算机上执行时执行如权利要求1至4中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110361516.9A CN113032123B (zh) | 2021-04-02 | 2021-04-02 | 一种远程npl运行环境的线程调度方法、系统及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110361516.9A CN113032123B (zh) | 2021-04-02 | 2021-04-02 | 一种远程npl运行环境的线程调度方法、系统及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032123A CN113032123A (zh) | 2021-06-25 |
CN113032123B true CN113032123B (zh) | 2024-05-14 |
Family
ID=76453684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110361516.9A Active CN113032123B (zh) | 2021-04-02 | 2021-04-02 | 一种远程npl运行环境的线程调度方法、系统及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032123B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984598A (zh) * | 2013-02-07 | 2014-08-13 | 宏达国际电子股份有限公司 | 用于线程调度的方法以及系统 |
CN104158868A (zh) * | 2014-08-06 | 2014-11-19 | 杭州华三通信技术有限公司 | 一种文件传输方法和管理服务器 |
CN109271265A (zh) * | 2018-09-29 | 2019-01-25 | 平安科技(深圳)有限公司 | 基于消息队列的请求处理方法、装置、设备及存储介质 |
CN110290097A (zh) * | 2018-03-19 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 数据的处理方法、装置、存储介质和电子装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058955B2 (en) * | 2000-12-06 | 2006-06-06 | Microsoft Corporation | Method and system for passing messages between threads |
-
2021
- 2021-04-02 CN CN202110361516.9A patent/CN113032123B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984598A (zh) * | 2013-02-07 | 2014-08-13 | 宏达国际电子股份有限公司 | 用于线程调度的方法以及系统 |
CN104158868A (zh) * | 2014-08-06 | 2014-11-19 | 杭州华三通信技术有限公司 | 一种文件传输方法和管理服务器 |
CN110290097A (zh) * | 2018-03-19 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 数据的处理方法、装置、存储介质和电子装置 |
CN109271265A (zh) * | 2018-09-29 | 2019-01-25 | 平安科技(深圳)有限公司 | 基于消息队列的请求处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113032123A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108124003B (zh) | 网络管理设备连接处理方法、装置及系统 | |
US5758087A (en) | Apparatus and method for predicted response generation | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
CN113630372A (zh) | 一种边缘计算的云边协同系统 | |
EP3211852A1 (en) | Ssh protocol-based session parsing method and system | |
CN109951546B (zh) | 基于智能合约的事务请求处理方法、装置、设备和介质 | |
US7089311B2 (en) | Methods, systems and computer program products for resuming SNA application-client communications after loss of an IP network connection | |
CN112631788B (zh) | 数据传输方法及数据传输服务器 | |
CN110430126A (zh) | 即时通信消息处理方法、装置、系统、设备及存储介质 | |
CN114185582A (zh) | 基于quic协议的汽车软件在线升级系统及方法 | |
CN109408251B (zh) | 消息发送方法与装置、消息接收处理方法与装置 | |
CN113810397B (zh) | 协议数据的处理方法及装置 | |
WO2015027931A1 (en) | Method and system for realizing cross-domain remote command | |
WO2024103943A1 (zh) | 一种业务处理方法、装置、存储介质及设备 | |
CN111385068A (zh) | 数据传输方法、装置、电子设备及通信系统 | |
CN113032123B (zh) | 一种远程npl运行环境的线程调度方法、系统及相关装置 | |
CN115378922B (zh) | 一种支持app互联互通的嵌入式操作系统软件接口方法 | |
WO2024040846A1 (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116828044A (zh) | 基于数据平面开发套件的消息队列遥感传输方法和系统 | |
CN114244758B (zh) | 安卓平台的网络诊断方法、存储介质、电子设备及系统 | |
CN114979259A (zh) | 一种消息队列代理装置 | |
CN111182047B (zh) | 用于在跨网络的大数据平台之间转移文件的方法和系统 | |
CN114363427A (zh) | 一种基于浏览器实时获取主机设备信息的方法 | |
CN113992644A (zh) | 一种基于无服务技术的物联网关系统及其数据处理方法 | |
CN111988283A (zh) | 数据传输方法、系统、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |