复习多线程基础

1.线程和进程的区别关系

首先要了解进程和线程,就要先了解什么是程序,程序就是指令集和数据的有序集合,其本身并没有运行的含义,是一个静态资源.
进程:进程是程序执行一次的过程,他是一个动态概念,是系统分配资源的一个单位.
线程 :通常一个进程中可以包含多个线程,一个进程至少含一个线程,线程是cpu调度和执行的单位…
其实真正的多线程指的是多核cpu,如果模拟出来的多线程,即在单核服务器下,同一个时间点,只能执行一行代码,只不过cpu切换速度很快.造成执行多线程的错觉.

创建线程有三种方式

  1. 第一种:继承Thread类
  2. 实现runnable接口
  3. 实现Callable接口

线程开启不一定马上执行,由cpu调度决定.但可以设置优先级

实现接口和实现类的对比:
Thread:

  1. 继承具备多线程的能力
  2. 启动线程,通过类的start()方法调用.
  3. 缺点是只能单继承,由局限性.不推荐使用

Runable:

  1. 实现接口具备多线程的能力
  2. 启动线程,通过new Thread(实现接口的类名),相当于静态代理
  3. 推荐使用该方法,避免了局限性,方便同一个对象被多个对象使用.

相当于一个资源,多个代理

2.线程的五大状态

创建,就绪,死亡,拥堵,运行;
复习多线程基础