本技术涉及计算机,特别是涉及一种数据处理方法、装置、电子设备和可读存储介质。
背景技术:
1、随着计算机技术的发展,目前的计算机已经可以实现多任务的并行处理。在相关技术中,往往会使用操作系统所提供的特性以实现多线程同步,通过使用自旋锁、互斥锁等接口保证多线程所操作内存的唯一性。
2、但是,在要求应用程序实现高性能的多线程环境下,还存在业务线程被系统或其他应用程序中断的问题。在中断之后的同步操作,还会导致线程栈切换、缓存线切换等导致处理器内部加速的失效的问题。
3、因此,在计算机运行多个程序的情况下,如何保证业务线程不被中断、提高单个应用程序的性能是目前亟需解决的问题。
技术实现思路
1、有鉴于此,本技术实施例提供一种数据处理方法、装置、电子设备和可读存储介质,以保证业务线程不被中断、提高单个应用程序的性能。
2、第一方面,提供了一种数据处理方法,所述方法应用于电子设备,所述方法包括:
3、接收目标数据;
4、轮询设备内存中各分配内存块,所述分配内存块为所述目标数据对应的应用程序私有化的内存块,所述分配内存块的数据结构至少包括所述分配内存块的状态标志位和所述分配内存块的内存块指针;
5、响应于所述状态标志位为空闲状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;
6、根据所述状态标志位对应的内存块指针,确定目标内存块;以及
7、基于所述目标内存块和预定线程,对所述目标数据执行预定处理流程。
8、在一些实施例中,所述方法还包括:
9、初始化设备内存;
10、所述初始化设备内存,包括:
11、根据预定内存需求和内存块容量,从所述设备内存的各内存块中确定各分配内存块。
12、在一些实施例中,在所述从所述设备内存的各内存块中确定各分配内存块之后,所述方法还包括:
13、获取处理器的缓存大小,所述处理器的缓存大小为智能缓存或者三级缓存;
14、确定各分配内存块中状态标志位和各分配内存块中内存块指针的合计占用缓存,所述合计占用缓存用于表征各所述状态标志位和各所述内存块指针占用处理器缓存的合计大小;
15、响应于所述合计占用缓存小于等于所述处理器的缓存大小,为各所述分配内存块设置状态标志位和内存块指针;以及
16、响应于所述合计占用缓存大于所述处理器的缓存大小,基于所述处理器的缓存大小确定可形成的内存块缓冲器数量,并为各所述分配内存块设置状态标志位和内存块指针;
17、其中,各所述内存块指针为固定值,各所述状态标志位间隔字节数为相同数值。
18、在一些实施例中,所述分配内存块的数据结构还包括:分配内存块总容量、内存块当前占用容量、数据缓冲器、源互联网协议地址、源端口、目的互联网协议地址、目的端口、使用协议。
19、在一些实施例中,所述预定线程包括数据包接收与重组线程;
20、所述轮询设备内存中各分配内存块,包括:
21、基于所述数据包接收与重组线程,轮询设备内存中各分配内存块。
22、在一些实施例中,所述预定线程还包括数据解析线程和数据检测线程;
23、所述基于所述目标内存块和预定线程,对所述目标数据执行预定处理流程,包括:
24、基于所述数据包接收与重组线程,对所述目标数据进行重组操作,确定第一数据;
25、将所述第一数据写入所述目标内存块中,并将所述状态标志位改写为数据包接收与重组完成状态;
26、基于所述数据解析线程,对所述目标内存块中的所述第一数据进行数据解析,确定第二数据;
27、将所述第二数据写入所述目标内存块中,并将所述状态标志位改写为数据解析完成状态;以及
28、基于所述数据检测线程,对所述目标内存块中的所述第二数据进行数据检测,确定第三数据,并将所述状态标志位改写为空闲状态。
29、在一些实施例中,所述基于所述数据解析线程,对所述目标内存块中的所述第一数据进行数据解析,确定第二数据,包括:
30、基于所述数据解析线程,轮询各分配内存块;
31、响应于所述状态标志位为数据包接收与重组完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
32、对所述目标内存块中的所述第一数据进行数据解析,确定第二数据。
33、在一些实施例中,所述数据解析至少包括协议解析、元组数据解析、传输文件还原和解析日志输出。
34、在一些实施例中,所述基于所述数据检测线程,对所述目标内存块中的所述第二数据进行数据检测,确定第三数据,包括:
35、基于所述数据检测线程,轮询各分配内存块;
36、响应于所述状态标志位为数据解析完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
37、对所述目标内存块中的所述第二数据进行数据检测,确定第三数据。
38、在一些实施例中,所述数据检测至少包括报文规则匹配、恶意文件检测、关键字检测和检测日志输出。
39、在一些实施例中,所述方法还包括:
40、根据初始化后的设备内存和预定比例,确定所述预定线程中各线程的初始化数量,以初始化线程。
41、第二方面,提供了一种数据处理装置,所述装置应用于电子设备,所述装置包括:
42、接收模块,用于接收目标数据;
43、轮询模块,用于轮询设备内存中各分配内存块,所述分配内存块为所述目标数据对应的应用程序私有化的内存块,所述分配内存块的数据结构至少包括所述分配内存块的状态标志位和所述分配内存块的内存块指针;
44、状态锁定模块,用于响应于所述状态标志位为空闲状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;
45、确定模块,用于根据所述状态标志位对应的内存块指针,确定目标内存块;以及
46、数据处理模块,用于基于所述目标内存块和预定线程,对所述目标数据执行预定处理流程。
47、在一些实施例中,所述装置还包括:
48、第一初始化模块,用于初始化设备内存;
49、所述第一初始化模块,具体用于:
50、根据预定内存需求和内存块容量,从所述设备内存的各内存块中确定各分配内存块。
51、在一些实施例中,所述装置还包括:
52、获取模块,用于获取处理器的缓存大小,所述处理器的缓存大小为智能缓存或者三级缓存;
53、缓存计算模块,用于确定各分配内存块中状态标志位和各分配内存块中内存块指针的合计占用缓存,所述合计占用缓存用于表征各所述状态标志位和各所述内存块指针占用处理器缓存的合计大小;
54、第一配置模块,用于响应于所述合计占用缓存小于等于所述处理器的缓存大小,为各所述分配内存块设置状态标志位和内存块指针;以及
55、第二配置模块,用于响应于所述合计占用缓存大于所述处理器的缓存大小,基于所述处理器的缓存大小确定可形成的内存块缓冲器数量,并为各所述分配内存块设置状态标志位和内存块指针;
56、其中,各所述内存块指针为固定值,各所述状态标志位间隔字节数为相同数值。
57、在一些实施例中,所述分配内存块的数据结构还包括:分配内存块总容量、内存块当前占用容量、数据缓冲器、源互联网协议地址、源端口、目的互联网协议地址、目的端口、使用协议。
58、在一些实施例中,所述预定线程包括数据包接收与重组线程;
59、所述轮询模块,具体用于:
60、基于所述数据包接收与重组线程,轮询设备内存中各分配内存块。
61、在一些实施例中,所述预定线程还包括数据解析线程和数据检测线程;
62、所述数据处理模块,具体用于:
63、基于所述数据包接收与重组线程,对所述目标数据进行重组操作,确定第一数据;
64、将所述第一数据写入所述目标内存块中,并将所述状态标志位改写为数据包接收与重组完成状态;
65、基于所述数据解析线程,对所述目标内存块中的所述第一数据进行数据解析,确定第二数据;
66、将所述第二数据写入所述目标内存块中,并将所述状态标志位改写为数据解析完成状态;以及
67、基于所述数据检测线程,对所述目标内存块中的所述第二数据进行数据检测,确定第三数据,并将所述状态标志位改写为空闲状态。
68、在一些实施例中,所述数据处理模块,具体用于:
69、基于所述数据解析线程,轮询各分配内存块;
70、响应于所述状态标志位为数据包接收与重组完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
71、对所述目标内存块中的所述第一数据进行数据解析,确定第二数据。
72、在一些实施例中,所述数据解析至少包括协议解析、元组数据解析、传输文件还原和解析日志输出。
73、在一些实施例中,所述数据处理模块,具体用于:
74、基于所述数据检测线程,轮询各分配内存块;
75、响应于所述状态标志位为数据解析完成状态,基于预先设置的锁定指令,将所述状态标志位锁定为忙碌状态;以及
76、对所述目标内存块中的所述第二数据进行数据检测,确定第三数据。
77、在一些实施例中,所述数据检测至少包括报文规则匹配、恶意文件检测、关键字检测和检测日志输出。
78、在一些实施例中,所述装置还包括:
79、第二初始化模块,用于根据初始化后的设备内存和预定比例,确定所述预定线程中各线程的初始化数量,以初始化线程。
80、第三方面,本技术实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面所述的方法。
81、第四方面,本技术实施例提供了一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面所述的方法。
82、通过本技术实施例,在接收到目标数据之后,电子设备可以轮询设备内存中各分配内存块,以查找处于空闲状态的目标内存块并通过预先设置的锁定指令进行抢占,然后可以基于目标内存块和预定线程对目标数据执行预定处理流程。其中,由于分配内存块为目标数据对应的应用程序私有化的内存块,因此,通过本技术实施例,可以使得应用程序在运行过程中不被其他程序所干扰,有效提高了应用程序的性能和数据处理的能力。