四种创建线程的方式:
- 继承 Thread 类
- 实现 Runnable 接口
- 通过 ExecutorService 和 Callable<Class> 实现有返回值的线程
- 基于线程池的execute(),创建临时线程
1 继承 Thread 类
Thread 类实现了 Runnable 接口并定义了操作线程的一些方法,我们可以通过创建类时继承 Thread类来创建一个线程。
具体实现:
(1)创建一个继承Thread的类ThreadDemo
(2)重新run()方法
调用步骤:
(1)创建ThreadDemo 类的对象t1
(2)执行t1.start() 方法来启动线程
//创建线程类 public class ThreadDemo extends Thread { //重写run()方法 @Override public void run() { for(int i = 0;i<1000;i++) { System.out.println("Thread::"+i); } } } /***********************************************************************/ //调用线程 //创建线程对象 ThreadDemo t1 = new ThreadDemo(); //启动线程 t1.start();
run()方法中是线程的具体逻辑操作,
start()是一个native本地方法,通过操作系统启动一个线程。
2 实现 Runnable 接口
通过实现Runnable 接口来创建线程类 RThread,但是使用的时候,仍需要创建Thread 对象,把RThread的对象当成参数传入。
具体操作:
(1)实现Runnable 接口创建线程类 RThread
(2)重写run()方法
调用步骤:
(1)创建RThread 类的对象 rThread
(2)创建Thread类对象,并把rThread当成参数传入,相当于对rThread进行了封装。
(3)通过start()方法启动线程
//实现Runnable 接口创建线程类 RThread public class RThread implements Runnable { @Override //重写run()方法 public void run() { for(int i = 0;i<1000;i++) { System.out.println("Thread::"+i); } } } /***********************************************************************/ //调用线程 //创建RThread 类的对象 rThread RThread rThread = new RThread(); //创建Thread类对象,并把rThread当成参数传入,相当于对rThread进行了封装。 Thread t2 = new Thread(rThread); //通过start()方法启动线程 t2.start();