java线程面试题怎么做?java线程面试题分享

进行java面试,会考很多java知识,目的就是看看你掌握java知识的熟练程度,能否胜任java岗位,而java线程作为java中重要知识点,也是面试中必考的,那下面我们就给大家分享一下java线程面试题。

1.什么是线程?

是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

2.线程的实现方式?

继承Thread类;

实现Runnable接口;

使用Callable和Future;

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

线程是进程的子集,一个进程能够有不少线程,每条线程并行执行不一样的任务。不一样的进程使用不一样的内存空间,而全部的线程共享一片相同的内存空间。别把它和栈内存搞混,每一个线程都拥有单独的栈内存用来存储本地数据。

4.Java中Runnable和Callable有什么不一样?

Runnable和Callable都表明那些要在不一样的线程中执行的任务。Runnable从JDK1.0开始就有了,Callable是在JDK1.5增长的。它们的主要区别是Callable的 call() 方法能够返回值和抛出异常,而Runnable的run()方法没有这些功能。Callable能够返回装载有计算结果的Future对象。

5.怎么检测一个线程是否持有对象监视器?

Thread类提供了一个holdsLock(Object obj)方法,当且仅当对象obj的监视器被某条线程持有的时候才会返回true,注意这是一个static方法,这意味着”某条线程”指的是当前线程。

6.怎么唤醒一个阻塞的线程?

如果线程是因为调用了wait()、sleep()或者join()方法而导致的阻塞,可以中断线程,并且通过抛出InterruptedException来唤醒它;如果线程遇到了IO阻塞,无能为力,因为IO是操作系统实现的,Java代码并没有办法直接接触到操作系统。

7.为什么要使用线程池?

避免频繁地创建和销毁线程,达到线程对象的重用。另外,使用线程池还可以根据项目灵活地控制并发的数目。

8.一个线程运行时发生异常会怎样?

简单的说,若是异常没有被捕获该线程将会中止执行。Thread.UncaughtExceptionHandler是用于处理未捕获异常形成线程忽然中断状况的一个内嵌接口。当一个未捕获异常将形成线程中断的时候JVM会使用Thread.getUncaughtExceptionHandler()来查询线程的UncaughtExceptionHandler并将线程和异常做为参数传递给handler的uncaughtException()方法进行处理。

这些都是java线程常考的面试题,我们需要掌握好java线程知识点,这样在面试的时候就不会惧怕!

最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。

推荐阅读:

editplus收费怎么弄?editplus有哪些使用技巧?

java运行出现JNI错误怎么办?Java运行环境是什么?

java接口的作用和意义是什么?java接口是类吗?