JAVA多线程实现的方式
JAVA多线程实现方式主要有四种:继承Thread类,实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread 线程、使用ExecutorService、Callable、Future实现有返回结果的线程。
1、继承Thread类创建线程
Thread类本质上是实现Runnable接口的一个实例,代表一个线程的实例,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并重写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:
2、实现Runnable接口创建线程,重写run函数运行
如果自己的类已经extends另一个类,就无法直接继承线程,这时可以实现一个接口
3、实现Callable接口通过FutureTask包装器来创建Thread线程,重写call函数
Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其他线程执行的任务
4、使用ExecutorService、Callable、Future实现有返回结果的线程
ExecutorService、Callable、Future三个接口实际上都是属于Executor框架