CN111625336B - 线程数据处理方法及其装置 - Google Patents

线程数据处理方法及其装置 Download PDF

Info

Publication number
CN111625336B
CN111625336B CN202010442756.7A CN202010442756A CN111625336B CN 111625336 B CN111625336 B CN 111625336B CN 202010442756 A CN202010442756 A CN 202010442756A CN 111625336 B CN111625336 B CN 111625336B
Authority
CN
China
Prior art keywords
thread
target
variable
task
computer device
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
Application number
CN202010442756.7A
Other languages
English (en)
Other versions
CN111625336A (zh
Inventor
贺召军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kingdee Software China Co Ltd
Original Assignee
Kingdee Software China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kingdee Software China Co Ltd filed Critical Kingdee Software China Co Ltd
Priority to CN202010442756.7A priority Critical patent/CN111625336B/zh
Publication of CN111625336A publication Critical patent/CN111625336A/zh
Application granted granted Critical
Publication of CN111625336B publication Critical patent/CN111625336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种线程数据处理方法、计算机设备以及计算机存储介质,用于回收目标线程变量对应的目标资源,降低了信息泄露的风险。本申请实施例方法包括:获取目标线程的目标线程变量;确定目标线程变量对应的目标资源,目标资源为目标线程执行目标任务时使用的资源;回收目标资源;清除目标线程变量。

Description

线程数据处理方法及其装置
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种线程数据处理方法及其装置。
背景技术
在计算机技术不断发展的今天,处理计算机运行任务的线程相关的技术在不断的突破和发展。
线程变量又称线程本地变量、线程局部变量,是指在多线程环境中,每个使用该变量的线程维护一个变量副本,每一个线程独立的改变其副本,而与其它线程变量副本隔离,线程变量是一种线程安全的实现方法。
当线程执行完任务之后,在线程被销毁或者回收时,线程变量中承载的资源还未被回收,例如线程变量中承载了数据库连接,当线程变量被销毁后,数据库连接还未及时断开,由于这种资源未被及时回收的情况会造成资源的泄露,进而影响信息的安全性。
发明内容
本申请实施例提供了一种线程数据处理方法,计算机装置以及计算机存储介质,用于回收目标线程对应的目标资源,降低了目标资源泄露的风险,提升了信息的安全性。
本申请实施例第一方面提供了一种线程数据处理方法,包括:
获取目标线程的目标线程变量;
确定目标线程变量对应的目标资源,目标资源为目标线程执行目标任务时使用的资源;
回收目标资源;
清除目标线程变量。
可选地,获取目标线程的目标线程变量之前,方法还包括:
创建线程生命周期管理器;
根据线程生命周期管理器包装目标线程;
回收目标资源包括:
根据线程生命周期管理器回收目标资源。
可选地,目标线程属于线程池,获取目标线程的目标线程变量之前,方法还包括:
创建线程生命周期管理器;
根据线程生命周期管理器包装线程池;
回收目标资源包括:
根据线程生命周期管理器回收目标资源。
可选地,根据线程生命周期管理器回收目标资源之后,方法还包括:
将目标线程回收至线程池。
可选地,获取目标线程的目标线程变量之前,方法还包括:
接收原始任务;
包装原始任务得到目标任务;
使用目标线程执行目标任务。
本申请实施例第二方面提供了一种计算机设备,包括:
获取单元,用于获取目标线程的目标线程变量;
确定单元,用于确定目标线程变量对应的目标资源,目标资源为目标线程执行目标任务时使用的资源;
回收单元,用于回收目标资源;
清除单元,用于清除目标线程变量。
可选地,计算机设备还包括:
创建单元,用于创建线程生命周期管理器;
包装单元,用于根据线程生命周期管理器包装目标线程;
回收单元具体用于根据线程生命周期管理器回收目标资源。
可选地,目标线程属于线程池,计算机设备还包括:
创建单元,用于创建线程生命周期管理器;
包装单元,用于根据线程生命周期管理器包装线程池;
回收单元具体用于根据线程生命周期管理器回收目标资源。
可选地,回收单元还用于将目标线程回收至线程池。
可选地,计算机设备还包括:
接收单元,用于接收原始任务;
包装单元还用于包装原始任务得到目标任务;
执行单元,用于使用目标线程执行目标任务。
本申请实施例第三方面提供了一种计算机设备,包括:
处理器、存储器、输入输出设备;
处理器与存储器、输入输出设备相连;
处理器执行如本申请实施例第一方面的方法。
本申请实施例第四方面提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如本申请实施例第一方面的方法。
本申请实施例第五方面提供了一种计算机存储介质,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如本申请实施例第一方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,通过回收目标线程对应的目标资源,降低了目标资源泄露的风险,提升了信息的安全性。
附图说明
图1为本申请实施例提供的一种线程数据处理方法的流程示意图;
图2为本申请实施例提供的另一种线程数据处理方法的流程示意图;
图3为本申请实施例提供的另一种线程数据处理方法的流程示意图;
图4为本申请实施例提供的一种计算机设备的结构示意图;
图5为本申请实施例提供的另一种计算机设备的结构示意图;
图6为本申请实施例提供的另一种计算机设备的结构示意图。
具体实施方式
本申请实施例提供了一种线程数据处理方法,用于在回收目标线程对应的目标资源,降低了目标资源泄露的风险,提升了信息的安全性。
请参阅图1,本申请实施例中线程数据处理方法一个实施例包括:
101、获取目标线程的目标线程变量。
计算机设备在通过目标线程执行用户任务之后,计算机设备获取目标线程的目标线程变量,该目标线程变量承载了目标线程的参数记录或者是连接资源,需要说明的是,本申请实施例并不对该目标线程变量的具体承载数据做限定。
102、确定目标线程变量对应的目标资源。
计算机设备在获取了目标线程的目标线程变量之后,计算机设备确定该目标线程变量所承载的目标资源,该目标资源可以是数据库连接资源,或者是地址信息资源等,具体此处不做限定。
103、回收目标资源。
计算机设备在确定了目标线程对应的目标资源之后,计算机设备对该目标资源进行回收,例如,可以通过回收函数回收该目标资源,具体此处不做限定。
104、清除目标线程变量。
计算机设备在回收了目标资源之后,计算机设备清除该目标线程对应的目标线程变量,例如,计算机设备可以通过java函数清除该目标线程变量,具体此处不做限定。
本申请实时例中,计算机设备通过回收目标线程变量承载的目标资源,降低了目标资源泄露的风险,提升了信息的安全性。
本申请实施例中的方法可以应用于单线程的场景,也可以应用于线程池的场景,以下将对两个场景分别进行描述。
一、单线程的场景。
请参阅图2,本申请实施例中线程数据处理方法另一实施例包括:
201、创建线程生命周期管理器。
计算机设备创建目标线程,该目标线程为真实的用户线程,在创建了目标线程之后,计算机设备创建线程生命周期管理器,该线程生命周期管理器是用于包装目标线程的。
在一种可能的实现方式中,计算机设备通过以下java函数创建目标线程:
Thread thread=new Thread();
可以理解的是,在实际应用过程中,还可以通过其他方式来创建目标线程,例如通过如下函数来实现:
方法一:
方法二:
可以理解的是,在实际应用过程中,还可以通过更多的方式来创建目标线程,具体此处不做限定。
在实际应用过程中,计算机设备针对一个执行任务可以创建一个线程,也可以创建多个线程,具体此处不做限定。
在一种可能的实现方式中,计算机设备通过以下方式创建线程生命周期管理器:
方式一:ThreadLifecycleMananger manger=new ThreadLifecycleMananger();
方式二:ThreadLifecycleMananger manger=ThreadLifecycleMananger.create();
可以理解的是,在实际应用过程中,还可以通过其他方式来创建线程生命周期管理器,具体此处不做限定。
202、根据线程生命周期管理器包装目标线程。
计算机设备在创建了目标线程和线程生命周期管理器之后,计算机设备通过线程生命周期管理器包装目标线程。
在一种可能的实现方式中,计算机设备通过以下方式包装目标线程:
ThreadWrapper wraper=new ThreadWrapper(thread);
ThreadWrapper wraper=ThreadWrapper.wrapper(thread);
可以理解的是,在实际应用过程中,还可以通过其他方式来包装该目标线程,具体此处不做限定。
203、接收原始任务。
计算机设备在运行的过程中,会接收到来自各个应用的执行任务,例如第一应用程序需要连接数据库,则计算机设备会接收到来自第一应用程序的连接数据库的任务。
204、包装原始任务得到目标任务。
为了方便管理原始任务,且更安全的执行原始任务,计算机设备将原始任务进行包装,得到目标任务。
在一种可能的实现方式中,计算机设备通过以下方式包装原始任务:
TaskWrapper taskWrapper=new TaskWrapper(userTask);
TaskWrapper taskWrapper=TaskWrapper.wrapper(userTask);
可以理解的是,在实际应用过程中,还可以通过更多的方式包装该原始任务,具体此处不做限定。
205、使用目标线程执行目标任务。
在得到目标任务之后,计算机设备使用目标线程执行目标任务。
具体的,计算机设备通过给目标线程打个标识,标识该目标线程开始受生命周期管理器管理,可以通过如下方式给目标线程打标识:
manger.startLifeCycle();
在一种可能的实现方式中,计算机设备通过如下方式执行目标任务:
thread.execute(taskWrapper);
可以理解的是,在实际应用过程中,还可以通过其他方式来使用目标线程执行目标任务,例如:userTask.run(),具体此处不做限定。
目标线程在执行目标任务的过程中,目标线程会将执行过程中需要用到的参数或者资源存放到目标线程变量中,例如在创建数据库连接后,将连接放入线程变量中,可以理解的是,线程变量还可以包括更多类型的数据,例如线程变量还包括类加载器,类加载器指示加载一个固定目录,具体线程变量包括的数据类型此处不做限定。
206、获取目标线程的目标线程变量。
计算机设备在使用目标线程执行完目标任务之后,计算机设备获取目标线程的目标线程变量。
具体的,在一种可能的实现方式中,计算机设备在执行完目标任务之后,计算机设备获取执行目标任务的目标线程的所有目标线程变量,这些目标线程变量构成了目标线程执行目标任务的线程上下文。
在一种可能的实现方式中,计算机设备在执行完目标任务之后,也可以只获取目标线程的一个目标线程变量,具体此处不做限定。
207、确定目标线程变量对应的目标资源。
当计算机设备获取了目标线程的目标线程变量之后,计算机设备根据目标线程变量确定对应的目标资源。
例如,目标线程变量中包括了数据库连接时,则计算机设备确定目标资源为数据库连接资源;或者,目标线程变量中包括了类加载器时,则计算机设备确定目标资源为类加载器;或者,目标线程变量中包括了已打开的文件信息,则计算机设备确定目标资源为已打开的文件信息;可以理解的是,在实际用过程中,目标资源还可以包括其他类型的数据,例如还可以包括I/O设备的资源,具体此处不做限定。
在一种可能的实现方式当中,计算机设备判断每一个目标线程变量是否需要进行资源回收,如果需要进行资源回收,则触发步骤208。
具体的,在一种可能的实现方式当中,计算机设备判断目标线程变量的对象是否实现了特殊标识接口,该特殊标识接口中包含了目标资源回收的函数,若是,则计算机设备确定该目标线程变量需要进行资源回收。
208、根据线程生命周期管理器回收目标资源。
在计算机设备确定了目标线程变量对应的目标资源之后,计算机设备通过线程生命周期管理器标识结束线程的生命周期,回收目标资源。
例如,当目标资源包括与数据库建立的连接时,则清除数据库连接;如果目标资源包括已打开的文件信息时,则关闭对应的文件信息。
在一种可能的实现方式中,计算机设备可以通过如下方式回收目标资源:
manger.endLifeCycle();
可以理解的是,在实际应用过程中,计算机设备还可以通过更多的方式回收目标资源,具体此处不做限定。
在一种可能的实现方式中,目标线程变量的对象中包含了特殊标识接口,则触发计算机设备执行该函数,进行目标资源的回收。
209、清除目标线程变量。
计算机设备在回收目标资源之后,则会清除目标线程变量。
在实际应用过程中,回收目标资源和清除目标线程变量可以同一步骤进行,例如通过同一个函数来实现回收目标资源和清除目标线程变量,可以通过如下函数实现:
manger.endLifeCycle();
可以理解的是,也可以调用不同的函数分别执行回收目标资源的步骤,或者清除目标线程变量的步骤,具体此处不做限定。
本申请实施例中,当数据库连接需要进行资源回收时,通过本申请实施例中的方法,在创建数据库连接后,将连接放入目标线程变量中,在目标线程使用完毕时,自动进行数据库连接资源的释放,避免了数据库连接的的泄露;在目标线程重复使用的过程中,通过清除目标线程变量,可以防止目标线程变量“污染”,降低了信息泄露的风险;对于一些需要资源回收的场景,通过自动回收目标资源,可以降低资源泄露导致的信息泄露的风险。
二、线程池的场景。
请参阅图3,本申请实施例中线程数据处理方法另一实施例包括:
301、创建线程生命周期管理器。
计算机设备创建线程池,在创建了线程池之后,计算机设备创建线程生命周期管理器,该线程生命周期管理器是用于包装线程池的。
在一种可能的实现方式中,计算机设备通过以下java函数创建线程池:
ThreadPool pool=new ThreadPool();
可以理解的是,在实际应用过程中,还可以通过其他方式来创建目标线程,例如通过如下函数来实现:
其中,corePoolSize:线程池的核心线程数;
maximumPoolSize:线程池的最大目标线程数;
keepAliveTime:线程池空闲时目标线程的存活时长;
unit:目标线程存活时长大单位,结合上个参数使用;
workQueue:存放任务的队列,使用的是阻塞队列;
threadFactory:线程池创建目标线程的工厂;
handler:在队列(workQueue)和线程池达到最大线程数(maximumPoolSize)均满时仍有任务的情况下的处理方式。
可以理解的是,在实际应用过程中,还可以通过更多的方式来创建线程池,具体此处不做限定。
在一种可能的实现方式中,计算机设备通过以下方式创建线程生命周期管理器:
方式一:ThreadLifecycleMananger manger=new ThreadLifecycleMananger();
方式二:ThreadLifecycleMananger manger=ThreadLifecycleMananger.create();
可以理解的是,在实际应用过程中,还可以通过其他方式来创建线程生命周期管理器,具体此处不做限定。
302、根据线程生命周期管理器包装线程池。
计算机设备在创建了线程池和线程生命周期管理器之后,计算机设备通过线程生命周期管理器包装目标线程。
在一种可能的实现方式中,计算机设备通过以下方式包装目标线程:
ThreadPoolWrapper wraperPool=new ThreadPoolWrapper(pool);
可以理解的是,在实际应用过程中,还可以通过其他方式来包装该目标线程,具体此处不做限定。
303、接收原始任务。
304、包装原始任务得到目标任务。
本实施例中的步骤303和304与图2所示实施例中的步骤203和204类似,具体此处不再赘述。
305、使用目标线程执行目标任务。
在得到目标任务之后,计算机设备通过线程池来分配该目标任务,线程池可以分配线程池中空闲的目标线程来执行目标任务,也可以通过创建新的目标线程来执行目标任务,具体此处不做限定。
具体的,计算机设备通过给目标线程打个标识,标识该目标线程开始受生命周期管理器管理,可以通过如下方式给目标线程打标识:
manger.startLifeCycle();
在一种可能的实现方式中,计算机设备通过如下方式执行目标任务:
pool.submit(taskWrapper);
可以理解的是,在实际应用过程中,还可以通过其他方式来使用目标线程执行目标任务,例如:userTask.run(),具体此处不做限定。
目标线程在执行目标任务的过程中,目标线程会将执行过程中需要用到的参数或者资源存放到目标线程变量中,例如在创建数据库连接后,将连接放入线程变量中,可以理解的是,线程变量还可以包括更多类型的数据,例如线程变量还包括类加载器,类加载器指示加载一个固定目录,具体线程变量包括的数据类型此处不做限定。
306、获取目标线程的目标线程变量。
307、确定目标线程变量对应的目标资源。
308、根据线程生命周期管理器回收目标资源。
309、清除目标线程变量。
本实施例中的步骤306至309与前述图2中的步骤206至209类似,具体此处不再赘述。
310、将目标线程返回线程池。
计算机设备在清除了目标线程变量之后,将目标线程返回给线程池,以便下次使用。
本申请实施例中,计算机设备通过线程池的方式来执行目标任务,节省了创建目标线程的时间和资源。
上面对本申请实施例中的线程数据处理方法进行了描述,下面对本申请实施例中的计算机设备进行描述,请参阅图4,本申请实施例中计算机设备一个实施例包括:
获取单元401,用于获取目标线程的目标线程变量;
确定单元402,用于确定目标线程变量对应的目标资源,目标资源为目标线程执行目标任务时使用的资源;
回收单元403,用于回收目标资源;
清除单元404,用于清除目标线程变量。
本实施例中,计算机设备中各单元执行的操作与前述图1所示实施例中描述的类似,此处不再赘述。
请参阅图5,本申请实施例中计算机设备另一实施例包括:
获取单元501,用于获取目标线程的目标线程变量;
确定单元502,用于确定目标线程变量对应的目标资源,目标资源为目标线程执行目标任务时使用的资源;
回收单元503,用于回收目标资源;
清除单元504,用于清除目标线程变量。
可选地,计算机设备还包括:
创建单元505,用于创建线程生命周期管理器;
包装单元506,用于根据线程生命周期管理器包装目标线程;
回收单元503具体用于根据线程生命周期管理器回收目标资源。
可选地,目标线程属于线程池,计算机设备还包括:
创建单元505,用于创建线程生命周期管理器;
包装单元506,用于根据线程生命周期管理器包装线程池;
回收单元503具体用于根据线程生命周期管理器回收目标资源。
可选地,回收单元503还用于将目标线程回收至线程池。
可选地,计算机设备还包括:
接收单元507,用于接收原始任务;
包装单元506还用于包装原始任务得到目标任务;
执行单元508,用于使用目标线程执行目标任务。
本实施例中,计算机设备中各单元执行的操作与前述图2或图3所示实施例中描述的类似,此处不再赘述。
请参阅图6,本申请实施例中计算机设备另一实施例包括:
图6是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备600可以包括一个或一个以上中央处理器(central processing units,CPU)601和存储器605,该存储器605中存储有一个或一个以上的应用程序或数据。
其中,存储器605可以是易失性存储或持久存储。存储在存储器605的程序可以包括一个或一个以上模块,每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器601可以设置为与存储器605通信,在计算机设备600上执行存储器605中的一系列指令操作。
计算机设备600还可以包括一个或一个以上电源602,一个或一个以上有线或无线网络接口603,一个或一个以上输入输出接口604,和/或,一个或一个以上操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
该中央处理器601可以执行前述图1至图3所示实施例中计算机设备所执行的操作,具体此处不再赘述。
应理解,本申请以上实施例中的计算机设备中提及的处理器,或者本申请上述实施例提供的处理器,可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请中以上实施例中的计算机设备中的处理器的数量可以是一个,也可以是多个,可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。本申请实施例中的存储器的数量可以是一个,也可以是多个,可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。
还需要说明的是,当计算机设备包括处理器(或处理单元)与存储单元时,本申请中的处理器可以是与存储单元集成在一起的,也可以是处理器与存储单元通过接口连接,可以根据实际应用场景调整,并不作限定。
本申请实施例还提供了一种计算机程序或包括计算机程序的一种计算机程序产品,该计算机程序在某一计算机上执行时,将会使所述计算机实现上述任一方法实施例中与计算机设备相关的方法流程。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例中与计算机设备相关的方法流程。
在上述图1-图3中各个实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请各实施例中提供的消息/帧/信息、模块或单元等的名称仅为示例,可以使用其他名称,只要消息/帧/信息、模块或单元等的作用相同即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本申请实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。
取决于语境,如在此所使用的词语“如果”或“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (9)

1.一种线程数据处理方法,其特征在于,包括:
接收原始任务;
包装所述原始任务得到目标任务;
使用目标线程执行所述目标任务;
在使用所述目标线程执行完所述目标任务后,获取目标线程的目标线程变量;
确定所述目标线程变量对应的目标资源,所述目标资源为所述目标线程执行目标任务时使用的资源;
若所述目标线程变量的对象中包含特殊标识接口,回收所述目标资源,所述特殊标识接口包含所述目标资源回收的函数;
清除所述目标线程变量。
2.根据权利要求1所述的方法,其特征在于,所述获取目标线程的目标线程变量之前,所述方法还包括:
创建线程生命周期管理器;
根据所述线程生命周期管理器包装所述目标线程;
回收所述目标资源包括:
根据所述线程生命周期管理器回收所述目标资源。
3.根据权利要求1所述的方法,其特征在于,所述目标线程属于线程池,所述获取目标线程的目标线程变量之前,所述方法还包括:
创建线程生命周期管理器;
根据所述线程生命周期管理器包装所述线程池;
回收所述目标资源包括:
根据所述线程生命周期管理器回收所述目标资源。
4.根据权利要求3所述的方法,其特征在于,根据所述线程生命周期管理器回收所述目标资源之后,所述方法还包括:
将所述目标线程回收至所述线程池。
5.一种计算机设备,其特征在于,包括:
接收单元,用于接收原始任务;
包装单元,用于包装所述原始任务得到目标任务;
执行单元,用于使用目标线程执行所述目标任务;
获取单元,用于在使用所述目标线程执行完所述目标任务后,获取目标线程的目标线程变量;
确定单元,用于确定所述目标线程变量对应的目标资源,所述目标资源为所述目标线程执行目标任务时使用的资源;
回收单元,用于若所述目标线程变量的对象中包含特殊标识接口,回收所述目标资源,所述特殊标识接口包含所述目标资源回收的函数;
清除单元,用于清除所述目标线程变量。
6.根据权利要求5所述的计算机设备,其特征在于,所述计算机设备还包括:
创建单元,用于创建线程生命周期管理器;
包装单元,用于根据所述线程生命周期管理器包装所述目标线程;
回收单元具体用于根据所述线程生命周期管理器回收所述目标资源。
7.根据权利要求5所述的计算机设备,其特征在于,所述目标线程属于线程池,所述计算机设备还包括:
创建单元,用于创建线程生命周期管理器;
包装单元,用于根据所述线程生命周期管理器包装所述线程池;
回收单元具体用于根据所述线程生命周期管理器回收所述目标资源。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述方法的步骤。
9.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如权利要求1至4中任一项所述的方法。
CN202010442756.7A 2020-05-22 2020-05-22 线程数据处理方法及其装置 Active CN111625336B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010442756.7A CN111625336B (zh) 2020-05-22 2020-05-22 线程数据处理方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010442756.7A CN111625336B (zh) 2020-05-22 2020-05-22 线程数据处理方法及其装置

Publications (2)

Publication Number Publication Date
CN111625336A CN111625336A (zh) 2020-09-04
CN111625336B true CN111625336B (zh) 2024-03-19

Family

ID=72271103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010442756.7A Active CN111625336B (zh) 2020-05-22 2020-05-22 线程数据处理方法及其装置

Country Status (1)

Country Link
CN (1) CN111625336B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708737A (zh) * 2016-12-21 2017-05-24 腾讯科技(深圳)有限公司 一种测试方法及装置
CN106874063A (zh) * 2016-08-26 2017-06-20 阿里巴巴集团控股有限公司 一种资源回收方法及装置
CN107220275A (zh) * 2017-04-13 2017-09-29 腾讯科技(深圳)有限公司 数据库句柄处理方法、装置和计算机设备
CN107463439A (zh) * 2017-08-21 2017-12-12 山东浪潮通软信息科技有限公司 一种线程池实现方法及装置
CN108153650A (zh) * 2018-02-02 2018-06-12 郑州云海信息技术有限公司 获取云服务器资源信息的方法、系统、装置及存储介质
CN108459898A (zh) * 2017-02-20 2018-08-28 阿里巴巴集团控股有限公司 一种资源回收方法及装置
CN111045797A (zh) * 2019-10-31 2020-04-21 华控清交信息科技(北京)有限公司 任务调度执行方法、相关装置和介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8499010B2 (en) * 2010-12-22 2013-07-30 International Business Machines Corporation Garbage collection in a multiple virtual machine environment

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874063A (zh) * 2016-08-26 2017-06-20 阿里巴巴集团控股有限公司 一种资源回收方法及装置
CN106708737A (zh) * 2016-12-21 2017-05-24 腾讯科技(深圳)有限公司 一种测试方法及装置
CN108459898A (zh) * 2017-02-20 2018-08-28 阿里巴巴集团控股有限公司 一种资源回收方法及装置
CN107220275A (zh) * 2017-04-13 2017-09-29 腾讯科技(深圳)有限公司 数据库句柄处理方法、装置和计算机设备
CN107463439A (zh) * 2017-08-21 2017-12-12 山东浪潮通软信息科技有限公司 一种线程池实现方法及装置
CN108153650A (zh) * 2018-02-02 2018-06-12 郑州云海信息技术有限公司 获取云服务器资源信息的方法、系统、装置及存储介质
CN111045797A (zh) * 2019-10-31 2020-04-21 华控清交信息科技(北京)有限公司 任务调度执行方法、相关装置和介质

Also Published As

Publication number Publication date
CN111625336A (zh) 2020-09-04

Similar Documents

Publication Publication Date Title
JP6087928B2 (ja) 循環グラフにおけるオブジェクト寿命の管理
CN101819525B (zh) 用于查找系统中应用的配置文件的方法和设备
US20070067359A1 (en) Centralized system for versioned data synchronization
CN112732406B (zh) 一种云平台虚拟机回收方法及计算机设备
US9417973B2 (en) Apparatus and method for fault recovery
CN112463437B (zh) 存储集群系统离线节点的业务恢复方法、系统及相关组件
CN103309796A (zh) 一种组件对象模型对象的监控方法和装置
WO2017148271A1 (zh) 一种Linux系统复位处理方法、装置及计算机存储介质
KR20160138523A (ko) 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치
CN111625336B (zh) 线程数据处理方法及其装置
CN106844005A (zh) 基于虚拟化环境下的数据恢复方法及系统
CN114896021A (zh) 一种恶意容器检测方法、系统、装置及主机
JP2003091429A (ja) データ一括保護システム
CN104317673A (zh) 应用程序的回收方法、装置及其恢复方法、装置
CN107656699B (zh) 图片调用方法及装置
US9672083B2 (en) Operating a program code object in conjunction with an application context
CN113568581A (zh) 一种嵌入式设备的多应用资源回收方法及系统
CN110837433A (zh) 性能优化方法、装置及电子设备
CN117348951B (zh) 应用于linux内核的容器感知装置和容器感知方法
CN105302662B (zh) 一种多机备份的方法和系统
CN117135151B (zh) 一种gpu集群的故障检测方法及gpu集群、电子设备和存储介质
CN117290857B (zh) 基于eBPF实现云原生安全的系统、方法、设备及介质
CN113742299B (zh) 文件压缩和解压缩方法以及文件压缩和解压缩装置
CN112559132B (zh) 面向容器化部署应用的安全静态检测方法及装置
CN114154155B (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