概括来说就是两种:
1、继承Thread类,重写run方法,然后start。不推荐这种,因为java的单继承特性。

多线程(一):创建线程的几种方法

2、Thread类的构造函数中可以接受Runnable任务,所以只要是Runnable实例就可以作为参数给Thread

一般有两种创建Runnable实例的方法
(1)实现Runnable接口,实现里面的run方法,扔个Thread类,然后start

多线程(一):创建线程的几种方法

(2)也可以创建FutureTask类的实例,因为FutureTask实现了RunnableFuture接口(继承自Runnable接口)

多线程(一):创建线程的几种方法

多线程(一):创建线程的几种方法

FutureTask构造函数中这里传递的是Callable接口的实例,Callable接口和Runnable差不多,可以理解为更高级的Runnable,Callable里面的是call方法,Runnable里面的是run方法。唯一的区别就是call方法有返回值,能抛出异常。

多线程(一):创建线程的几种方法

相关文章:

  • 2021-06-13
  • 2022-01-01
  • 2021-07-11
  • 2021-09-07
  • 2022-01-01
  • 2022-01-01
  • 2022-02-09
  • 2021-05-28
猜你喜欢
  • 2021-08-23
  • 2022-12-23
  • 2021-10-29
  • 2021-05-21
  • 2021-06-12
  • 2021-11-27
相关资源
相似解决方案