一种高效的基于Java多线程和反射的任务执行方法技术

技术编号:27771827 阅读:34 留言:0更新日期:2021-03-23 12:50
本发明专利技术涉及JAVA多线程技术领域,尤其涉及一种高效的基于Java多线程和反射的任务执行方法,本发明专利技术首先通过Java开启多线程,具体通过继承Thread类或实现Runnable接口或在函数体开启;然后在多线程开启运行时构造任意一个类的对象,在运行时判断对象所属的类型,并且获取在运行时对象的成员变量和方法信息,然后在运行时调用对象的方法;在构造任意一个类的对象时通过sql的方式进行执行,通过对所有任务的执行时间进行汇总,耗时最长的任务单独建立线程异步处理,然后将其他各个子任务进行划分,每个线程处理多个子任务,单子任务处理总时间不超过最长任务时间。该方法任务执行总时间由原来的各个子任务时间和,优化为最长任务时间。大大优化了任务执行效率。

【技术实现步骤摘要】
一种高效的基于Java多线程和反射的任务执行方法
本专利技术涉及JAVA多线程
,尤其涉及一种高效的基于Java多线程和反射的任务执行方法。
技术介绍
线程是jvm调度的最小单元,也叫做轻量级进程,进程是由线程组成,线程拥有私有的程序技术器以及栈,并且能够访问堆中的共享资源。这里提出一个问题,为什么要用多线程?有一下几点,首先,随着cpu核心数的增加,计算机硬件的并行计算能力得到提升,而同一个时刻一个线程只能运行在一个cpu上,那么计算机的资源被浪费了,所以需要使用多线程。其次,也是为了提高系统的响应速度,如果系统只有一个线程可以执行,那么当不同用户有不同的请求时,由于上一个请求没处理完,那么其他的用户必定需要在一个队列中等待,大大降低响应速度,所以需要多线程。Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动本文档来自技高网...

【技术保护点】
1.一种高效的基于Java多线程和反射的任务执行方法,具体按以下步骤执行:/nS1:首先通过Java开启多线程,具体通过继承Thread类或实现Runnable接口或在函数体开启;/nS2:然后在多线程开启运行时构造任意一个类的对象,在运行时判断对象所属的类型,并且获取在运行时对象的成员变量和方法信息,然后在运行时调用对象的方法;/nS3:在构造任意一个类的对象时通过sql的方式进行执行,通过对所有任务的执行时间进行汇总,耗时最长的任务单独建立线程异步处理,然后将其他各个子任务进行划分,每个线程处理多个子任务,单子任务处理总时间不超过最长任务时间。/n

【技术特征摘要】
1.一种高效的基于Java多线程和反射的任务执行方法,具体按以下步骤执行:
S1:首先通过Java开启多线程,具体通过继承Thread类或实现Runnable接口或在函数体开启;
S2:然后在多线程开启运行时构造任意一个类的对象,在运行时判断对象所属的类型,并且获取在运行时对象的成员变量和方法信息,然后在运行时调用对象的方法;
S3:在构造任意一个类的对象时通过sql的方式进行执行,通过对所有任务的执行时间进行汇总,耗时最长的任务单独建立线程异步处理,然后将其他各个子任务进行划分,每个线程处理多个子任务,单子任务处理总时间不超过最长任务时间。


2.根据权利要求1所述的一种高效的基于Java多线程和反射的任务执行方法,其特征在于:在步骤S1中,
S2.1:继承Thread类中,定义bai一个继承自Java.lang.Thread类的du类A;
S2.2:覆盖zhiA类Thread类中的run方法;
S2.3:编写需要在run方法中执行的操作:run方法中的代码,线程执行体。
S2.4:在main方法的线程中,创建一个线程对象并启动线程;
S2.5:创建线程类对象A类,调用线程对象的start方法启动一个线程。


3.根据权利要求1所述的一种高效的基于Java多线程和反射的任务执行方法,其特征在于:在步骤S1中实现Runnable接口,首先定义在java.lang.Runnable接口中实现非线程类A,
S3.1:覆盖A类Runnable接口中的run方法;
S3.2:然后编写需要在run方法中执行的操作,具体是在run方法中,线程执行;
S3.3:在main方法的线程中,创建一个线程对象并启动线程;
S3.4:创建线程类对象,然后调用线程对象的start方法。


4.根据权利要求1所述的一种高效的基于Java多线程和反射的任务执行方法,其特征在于:在步骤S2中获取类型的对象的具有3种方式,具体为调用getClass、运用.class语法和运用staticmethodClass.forName()。


5.根据权利要求4所述的一种高效的基于Java多线程和反射的任务执行方法,其特征在于:在获取对象时,具体通过返回一个Field对象,反映此Class对象所表示的类或接口的指定公共成员字段,通过publicField[]getFields()返回一个包含某些Fie...

【专利技术属性】
技术研发人员:邵天雄熊军
申请(专利权)人:盛银消费金融有限公司
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1