从品牌网站建设到网络营销策划,从策略到执行的一站式服务
Java有几种方法开启线程?怎么实现带有返回值的线程?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。
成都创新互联公司主要从事网站设计、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务四子王,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
1:继承Thread类
2:实现Runnable接口
这两种是大家常用的,代码demo就截图吧。
定义:一个类型需要extends thread类,然后实现thread类的run方法。
编辑
定义一个类,实现Runable接口,重新run方法。
New个thread对象,使用有参构造器,参数是runnable的。然后thread.start()
编辑
操作步骤:
一个类实现Callable接口,重新call方法;
在调用的时候,需要使用FutureTask这个类的有参构造,然后再使用thread的有参构造。
最后调用task的get方法。
代码如下:
编辑
运行结果:
编辑
Callable返回值的源码:
我们从FutureTask这个类入手,因为返回值就是从FutureTask中获取的。来看看类关系图:
编辑
FutureTask实现了RunnableFuture接口,RunnableFuture接口继承了Future和Runnable接口。
编辑
编辑
我们看RunnableFuture这个接口的时候,发现只有一个无返回值的run方法。那么,线程返回的数据是哪个类实现的呢?其实就在FutureTask类里面。我们在来看看FuntrueTask这个类:
编辑
重新了run方法。最后,有个set result。既然有set方法。在来看看demo中task.get()方法:
编辑
Get方法就带有返回值的。
至此,实现callable接口带有返回值的原因已经找到了。
使用线程池创建的线程,可以有返回值,也可以没有返回值。使用Executory这个顶级接口来处理。
我们先来看看Executor接口的关系。如下图:
编辑
其中看到了熟悉的ThreadPoolExecutor和ScheduledThreadPoolExecutor
编辑
说明:这里不带返回值的,其实就是调用了Runnable的run方法。
创建一个类,实现Callable接口。如下图:
编辑
通过这个接口,我们知道是有返回值的。
Java中实现线程有4种方式:
我们最熟悉的不带换回值的两种以及带有返回值的两种。分别是:
Thread、Runnable和Callable以及线程池
关于开启java线程和实现带有返回值线程的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果喜欢这篇文章,不如把它分享出去让更多的人看到。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图