复习多线程基础
1.线程和进程的区别关系
首先要了解进程和线程,就要先了解什么是程序,程序就是指令集和数据的有序集合,其本身并没有运行的含义,是一个静态资源.
进程:进程是程序执行一次的过程,他是一个动态概念,是系统分配资源的一个单位.
线程 :通常一个进程中可以包含多个线程,一个进程至少含一个线程,线程是cpu调度和执行的单位…
其实真正的多线程指的是多核cpu,如果模拟出来的多线程,即在单核服务器下,同一个时间点,只能执行一行代码,只不过cpu切换速度很快.造成执行多线程的错觉.
创建线程有三种方式
- 第一种:继承Thread类
- 实现runnable接口
- 实现Callable接口
线程开启不一定马上执行,由cpu调度决定.但可以设置优先级
实现接口和实现类的对比:
Thread:
- 继承具备多线程的能力
- 启动线程,通过类的start()方法调用.
- 缺点是只能单继承,由局限性.不推荐使用
Runable:
- 实现接口具备多线程的能力
- 启动线程,通过new Thread(实现接口的类名),相当于静态代理
- 推荐使用该方法,避免了局限性,方便同一个对象被多个对象使用.
相当于一个资源,多个代理
2.线程的五大状态
创建,就绪,死亡,拥堵,运行;