Java 线程热门面试题练习 Java 语言一个重要的特点就是内置了对并发的支持,让Java 大受企业和程序员的欢迎
大多数待遇丰厚的 Java 开发职位都要求开发者精通多线程技术并且有丰富的 Java 程序开发、调试、优化经验,所以线程相关的问题在面试中常常会被提到
1) 什么是线程
线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位
程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速
比如,假如一个线程完成一个任务要 100 毫秒,那么用十个线程完成改任务只需 10 毫秒
Java 在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点
2) 线程和进程有什么区别
线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务
不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间
别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据
3) 如何在 Java 中实现线程
在语言层面有两种方式
Thread 类的实例就是一个线程但是它需要调用 java
Runnable 接口来执行,由于 线 程 类 本 身 就 是 调 用 的 Runnable 接 口 所 以 你 可 以 继 承java
Thread 类或者直接调用 Runnable 接口来重写 run方法实现线程
更多详细信息请这里
4) 用 Runnable 还是 Thread
这个问题是上题的后续,大家都知道我们可以通过继承Thread 类或者调用 Runnable 接口来实现线程,问题是,那个方法更好呢
什么情况下使用它
这个问题很容易回答,假如你知道 Java 不支持类的多重继承,但允许你调用多个接口
所以假如你要继承其他类,当然是调用 Runnable 接口好了