线程和进程有什么不同? 特性不一样。
过程是指在一个数据集合上,由计算机中的程序完成的一种运行活动,是系统资源分配和调度的基本单元,也是操作系统结构的基础。
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面试题