Java实现线程的方式其实有三种:继承Thread类、实现Runnable接口、实现Callable接口。
一、继承Thread类
Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。
启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。
ExtendThread thread1 = new ExtendThread();
ExtendThread thread2 = new ExtendThread();
thread1.start();
thread2.start();
二、实现Runnable接口
RunnableThread runnableThread1 = new RunnableThread();
RunnableThread runnableThread2 = new RunnableThread();
new Thread(runnableThread1).start();
new Thread(runnableThread2).start();
三、实现Callable接口
Callable与Runnable的区别是:主要是可以获取返回结果。
面试题:线程的运行状态
线程的启动使用的是start()方法,但是并不意味着立刻执行。
当线程创建使用start()启动,不会立刻执行,而是进入到就绪状态,等待调度后执行,需要分配资源,执行一段时间后,让出资源,等待新的资源分配,直到多线程执行完毕。
文章来源: https://www.toutiao.com/group/6700518356203602446/