java中的线程创建步骤有哪些?java线程创建的几种方式是什么?

2020-03-27 21:38:22 java常见问答 8555

大家知道创建线程到底有几种方式呢?有的人说两种方式、三种方式、四种方式等等不同的说辞。是否知道各个方式创建线程的步骤又有哪些呢?接下来一起解开疑题。

java多线程的实现方式有4种,分别是继承Thread类、实现Runnable接口、实现Callable接口,从线程池中获取,其中前两种比较常用。一下就是线程创建的详细步骤以及注意的事项:

1.继承Thread类

java中的线程创建步骤有哪些?

说明:

调用start方法后并不意味着会立刻执行run方法里面的代码,只是使该线程处于可运行状态了,具体什么时候执行,要由系统来决定。该方式使用的是继承的方式,由于java不支持多继承,所以如果需要继承其他类的时候,就不能使用该方式了。

2.实现Runnable接口

java中的线程创建步骤有哪些?

说明:

该方式是实现接口的方式,限制较小,没有第一种方式的继承的问题,所以推荐使用这种方式。

3.Callable+FutureTask

java中的线程创建步骤有哪些?

说明:

Callable和Runnable功能差不多,但是相比Runnable来说还是有很多区别的,主要体现在以下3点:

(1)、Callable的call方法有返回值并且可以抛异常,而Runnable的run方法就没有返回值也没有抛异常。

(2)、Callable运行后可以拿到一个Future对象,这个对象表示异步计算结果,可以从通过Future的get方法获取到call方法返回的结果。但要注意调用Future的get方法时,当前线程会阻塞,直到call方法返回结果。

(3)、Runnable是作为线程的构造参数运行的,Callable是作为线程池的submit方法的参数运行的。

4.借助线程池

这种方式就是你通过线程池间接地去创建线程,相当于把创建线程的任务托管给线程池。线程池可以统一管理线程,使得线程调度有序,且利用效率大大提高。

线程池可以通过Executors提供的几个方法来创建,也可以通过ThreadPoolExecutor创建自定义线程池。

以上就是小编介绍的四种创建线程的方式,想要更多的了解知识,请继续关注本网站哦。