Java面试锦囊送给你!大厂门槛随便跨!

77 阅读2分钟

线程和进程有什么不同? 特性不一样。

过程是指在一个数据集合上,由计算机中的程序完成的一种运行活动,是系统资源分配和调度的基本单元,也是操作系统结构的基础。

java

线程化(英语:thread)是操作系统能够调度操作的最小单元。其包含在过程中,是过程中的实际操作单元。

应用范围不同。

利用过程的目的在于清楚地刻画动态系统的内在规律,对计算机系统主存中运行的程序进行有效的管理和调度。

一个内核线程,用于调度操作系统内核,例如Win32线程;一个用户进程自己调度,比如Linux平台的POSIXThread;或者一个内核线程和一个用户进程,比如Windows7,一起调度。

什么是守护线程? 后台线程是一个运行于后台的特殊进程。其与控制终端无关,并定期执行一些任务或等待处理某些发生的事件。垃圾收集线程是Java中的特殊守护线程。

有哪些方法可以创建线程? 有三种方法创建线程:

从Thread继承run方法;

执行运行表接口;

实施Callable界面。

谈一谈runnable和callable的区别?

Runnable没有返回值,callable得到了一个返回值,而callable可以作为Runnable的一个补充。

线程的状态是什么? 线程状态:

尚未启动NEW。

正在执行RUNNABLE。

阻塞的BLOCKED(被同步锁或IO锁阻塞)

永久等待的WAITING状态。

TIMED_WAITING在指定的时间等待唤醒的状态。

完成TERMINATED执行。

什么是sleep()和wait()? 不同的类:sleep()来自Thread,wait()来自Object。

解除锁定:sleep()不解除锁定;wait()解除锁定。

使用:sleep(时间到后自动恢复);wait()可使用notify()/notifyAll()直接唤醒。

扫码免费领取Java面试题

在这里插入图片描述