Java 多线程 50 题
1) 什么是线程?
线程是操作系统能够进行运算调度的最小单位,它被包含在
进程之中,是进程中的实际运作单位。程序员可以通过它进行多
处理器编程,你可以使用多线程对运算密集型任务提速。比如,
如果一个线程完成一个任务要 100 毫秒,那么用十个线程完成改
任务只需 10 毫秒。
2) 线程和进程有什么区别?
线程是进程的子集,一个进程可以有很多线程,每条线程并
行执行不同的任务。不同的进程使用不同的内存空间,而所有的
线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程
都拥有单独的栈内存用来存储本地数据。更多详细信息请点击这
里。
3) 如何在 Java 中实现线程?
java.lang.Thread 类的实例就是一个线程但是它需要调用
java.lang.Runnable 接口来执行,由于线程类本身就是调用的
Runnable 接口所以你可以继承 java.lang.Thread 类或者直接调用
Runnable 接口来重写 run()方法实现线程。
4) Thread 类中的 start()和 run()方法有什么区别?
这个问题经常被问到,但还是能从此区分出面试者对 Java 线程
模型的理解程度。start()方法被用来启动新创建的线程,而且 start()
内部调用了 run()方法,这和直接调用 run()方法的效果不一样。当你