面试别再被坑了,线程的实现方式不止两种

2019-06-10 06:07发布

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/
标签: 面试 java