创建新线程的方法

如题所述

创建新线程的方法有:继承Thread类创建线程、实现Runnable接口创建线程、实现Callable接口、使用ExecutorService或Callable(或者Runnable)或Future实现由返回结果的线程、使用CompletableFuture类创建异步线程,且是据有返回结果的线程(JDK8新支持的)。

1、继承Thread类创建线程

Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extends Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。

2、实现Runnable接口创建线程

如果自己的类已经extends另一个类,就无法直接extends Thread,此时,可以实现一个Runnable接口。

3、实现Callable接口

通过FutureTask包装器来创建Thread线程,实现一个Callable接口(它是一个具有返回值的)。

4、使用ExecutorService、Callable(或者Runnable)、Future实现由返回结果的线程

Executors类,提供了一系列工厂方法用于创建线程池,返回的线程池都实现了ExecutorService接口:ExecutoreService提供了submit()方法,传递一个Callable,或Runnable,返回Future。如果Executor后台线程池还没有完成Callable的计算,这调用返回Future对象的get()方法,会阻塞直到计算完成。

5、使用CompletableFuture类创建异步线程,且是据有返回结果的线程(JDK8新支持的)

JDK1.8新加入的一个实现类CompletableFuture,实现了Future,CompletionStage两个接口。

温馨提示:答案为网友推荐,仅供参考
相似回答