本篇文章给大家分享的是有关Java中怎样实现多线程,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java多线程实现有三种: 三种方式分别通过代码实例讲解:1、继承Thread类继承Thread并重写run()方法,Thread类中的start方法会去调用系统的方法执行相应的线程。实际上Thread也是实现了Runable接口的,如图:代码实例:2、实现Runable接口实现Runable接口,并重写run()方法,启动线程必须要使用Thread类的start()方法,代码实例:3、实现Callable接口上面的两个方式有两个问题,第一个是无法抛出更多的异常,第二个是线程执行完毕之后并无法获得线程的返回值。那么下面的这种实现方式就可以完成我们的需求;从Java5开始就提供了Callable接口,该接口是Runnable接口的增强版,Callable接口提供一个call()方法作为线程执行体,call()方法可以有返回值,call()方法可以声明抛出异常,但是这种方式比较复杂,大体步骤如下:1).创建一个类实现Callable接口,实现call方法。这个接口类似于Runnable接口,但比Runnable接口更加强大,增加了异常和返回值。2).创建一个FutureTask,指定Callable对象,做为线程任务。3).创建线程,指定线程任务。代码实例:
三种方式区别:第一种方式继承Thread就不能继承其他类了,后面两种可以;使用后两种方式可以多个线程共享一个target;,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU、代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。获取和设置线程名称时,第一种既可使用this.setName()和this.getName()分别设置和获取当前线程名称也可使用Thread.currentThread().getName()和Thread.currentThread().setName(),而后两种必须要使用Thread.currentThread().getName()。Callable规定(重写)的方法是call(),Runnable规定(重写)的方法是run();Callable的任务执行后可返回 香港云主机值,而Runnable的任务是不能返回值的;call方法可以抛出异常,run方法不可以;运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。
以上就是Java中怎样实现多线程,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注开发云行业资讯频道。
首先在win10下搭建好hadoop的环境,hadoop可以运行解压hadoop2.7.7的安装包和源码包,解压后创建一个空的目录,把解压的源码包,安装包下share/hadoop下的除了kms的目录包外其他包下的所有jar包都拷贝到刚新建的空目录中。大概有1…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。