课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于程序员来说,学习java编程开发技术必须要掌握关于多线程编程技术以及异常处理的方法,下面我们就一起来了解一下具体情况吧。
1. 多线程的参数传递
在传统开发过程中,我们习惯在调用函数时,将所需的参数传入其中,通过函数内部逻辑处理返回结果,大多情况下,整个过程均是由一条线程执行,排除运行不必要的的偶发性,似乎并不会出现意料之外的结果。而在多线程环境下,在使用线程时需要对线程进行一些必要的初始化,线程对这些数据进行处理后返回结果,由于线程的运行和结束并不可控,线程传参变得复杂起来,本文就以上问题介绍三种常用的传递参数方式。
(一)构造方法传参
在创建线程时,需要创建一个Thread类的或者其子类的实例,通过调用其start()方法执行run()方法中的代码块,在此之前,我们可以通过构造函数传递线程运行所需要的数据,并使用变量保存起来。
这种方式的优点很明显:简单、安全。在线程运行之前数据已经准备完成,避免线程丢失数据,如果传递更复杂数据,可以定义集合或者类等数据结构。缺点就是传递比较多的参数时,这种方式会使构造方法过于复杂,为了避免这种情况可以通过类方法和变量传递参数
(二)变量和类方法传递参数
在Thread实例类中定义需要传递的参数变量,并且定义一系列public的方法(或变量),在创建完Tread实例后通过调用方法给参数逐个赋值。
(三)通过回调函数传递数据
以上线程传递参数常用的两种方式,但是可以发现参数都在main方法中设置,然后Thread实例被动的接受参数,假如在线程运行中动态的获取参数,如在run()方法先获取三个随机数,通过Work类的process方法对这随机数求和,后通过Data类的value值返回结果。此例看出在返回value之前,因为随机数的不确定性,我们并不能事先传递的值value。
2.Java异常处理器
在Java线程run()方法中,对于未检查异常,借助于异常处理器进行处理。异常处理器可以直接理解为异常处理的方法,下面为具体如何使用。
(二)异常处理逻辑
当run()方法中发生异常,JVM调用异常分发器,也就是借助getUncaughtExceptionHandler方法获取异常处理器,然后执行它的uncaughtException方法。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!