1.什么是线程?
线程是操作系统能够进行运算调度的最小单位
2.线程和进程有什么区别?
线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。
不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,
每个线程都拥有单独的栈内存用来存储本地数据。
3.Java中实现多线程有几种方法
继承Thread类;
实现Runnable接口;
实现Callable接口通过FutureTask包装器来创建Thread线程;
使用ExecutorService、Callable、Future实现有返回结果的多线程(也就是使用了ExecutorService来
管理前面的三种方式)。
4.实现Runnable接口和继承Thread类区别
实现Runnable接口比继承Thread类的优势
- 可以解决 java 中的单继承的限制
- 适合多个相同的程序代码的线程去处理同一个资源
- 增加程序的健壮性,代码可以被多个线程共享,代码和数据独立
举例:
比如要卖10张票,分给3个窗口
- 继承Thread类方式相当于,3个窗口每个都能卖10张票
- 实现Runnable接口相当于,3个窗口一共买10张,一共10张票,分给3个窗口去卖。
![image.png](https://www.icode9.com/i/ll/?i=img_convert/eb52fd1402826cd8