java线程面试题有哪些?java线程面试常问题

好久没给大家分享面试题了,大家是不是等的有些急躁了?好了,别急,下面我们就给大家分享关于java线程面试题,同时也将题目答案一起分享给大家,帮助大家提高面试通过率!

1.什么是线程?

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成该任务只需10毫秒。

2.线程和进程有什么区别?

一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。

3.Java中如何停止一个线程?

Java提供了很丰富的API但没有为停止线程提供API。JDK 1.0本来有一些像stop(), suspend() 和 resume()的控制方法,但是由于潜在的死锁威胁。因此在后续的JDK版本中他们被弃用了,之后Java API的设计者就没有提供一个兼容且线程安全的方法来停止一个线程。当run() 或者 call() 方法执行完的时候线程会自动结束,如果要手动结束一个线程,可以用volatile 布尔变量来退出run()方法的循环或者是取消任务来中断线程。

4.守护线程是什么?

守护线程是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 在 Java 中垃圾回收线程就是特殊的守护线程。

5.实现多线程的方式有哪些?

继承Thread类:Java单继承,不推荐;

实现Runnable接口:Thread类也是继承Runnable接口,推荐;

实现Callable接口:实现Callable接口,配合FutureTask使用,有返回值;

使用线程池:复用,节约资源;

好了,今天的分享到这里就结束了,大家可以将这些题目收藏,有空的时候可以消化这题目,绝对是可以帮助你们面试的哦!最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。

推荐阅读:

怎么查看json文件?json文件打开方法是什么?

java新手开发项目有哪些?java开发项目应注意哪些?

javabean有什么特征?javabean方法是什么?