这篇文章主要介绍“Java多线程的实现方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java多线程的实现方式有哪些”文章能帮助大家解决问题。一、前言
Java多线程实现的三种方式有继承Thread类,实现Runnable接口,使用ExectorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1.Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。2.start()方法是一个native方法,它将启动一个新线程,并执行run()方法3.这种方式实现多线程很简单,通过自己的类直接extend Thread,并重写run()方法,就可以启动新线程并执行自己定义的run()方法启动线程:Java程序里面对于继承永远都是存在有单继承局限的,如果自己的类已经extends另一个类,就无法直接extends Thread,Java里面又提供第二种多线程的主体定义结构形式:实现java.lang.Runnable接口定义:实现一个Runnable接口:启动MyThread,首先实例化一个Thread,并传入自己的MyThread实例:当传入一个Runnable target参数给Thread后,Thread的run()方法就会调用target.run()1.从代码的结构本身来讲肯定使用Runnable是最方便的,因为其可以避免单继承的局限,同时也可以更好的进行功能的扩充2.从结构上观察Thread与Runnable的联系3.进行Thread启动多线程时调用的是start()方法,而后找到的是run()方法。当通过Thread类的构造方法传递了一个Runnable接口对象的时候,该接口对象将被Thread中的target的属性保存,在start()方法执行的时候会调用Thread类的run方法,而这个run()方法去调用Runnable接口子类被覆写过的run()方法。多线程开发的本质实质上是在于多个线程可以进行统一资源的抢占,那么Thread主要描述的是线程,那么资源的描述是通过Runnable完成的。1.ExecutorService、Callable、Future这个对象实际上都是属于Executor框架中的功能类2.返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口3.执行Callable任务后,可以获取一个Future的对象免费云主机域名,在该对象上调用get就可以获取到Callable任务返回的Object,再结合线程池接口ExecutorService就可以实现有返回结果的多线程了Runnable接口有一个缺点:当线程执行完毕后,我们无法获取一个返回值,所以从JDK1.5之后就提出了一个新的线程实现接口:java.util.concurrent.Callable接口Callbale定义的时候可以设置一个泛型,此泛型的类型就是返回数据的类型Callable接口和Runnable接口是类似的,但是需要实现的是call方法,而且从上面的代码中我们可以看到run()方法执行的任务是没有返回值的,但是call方法有返回值,可以自定义返回值的类型,这就是两个接口最大的区别例子:关于“Java多线程的实现方式有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。
今天小编给大家分享一下淘客小程序如何制作的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 第一步:你得先申请1个微信小程序并认证(未认证不能上…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。