java学习日记14,多线程基础

程序、进程与线程

程序:为完成特定任务,用某种语言编写的一组指令的集合。即指一段静态的代码。
进程:程序的一次执行过程,或是正在运行的一个程序。
进程作为资源分配的单位,系统在运行时会为每个进程分配不同的区域。
线程:进程可进一步细化为线程,是每个程序内部的一条执行路径。线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器,线程切换的开销小。

内存结构
java学习日记14,多线程基础

并行与并发

并行:多个CPU共同执行多个任务,即:多个人做不同的事。
并发:一个CPU(用时间片的方式)同时执行多个任务,即:多个人做同一件事,例如秒杀活动。

创建多线程的方式之二

方式一:继承Thread类创建多个线程。
1、创建一个继承于Thread类的子类
2、重写run()方法,将线程要执行的任务声明在其中
3、创建该子类的对象
4、通过该对象调用start()方法
方式二:实现Runnable接口创建多个线程
1、创建一个实现Runnable接口的实现类
2、重写run()方法
3、创建该实现类的一个对象
4、将该对象作为参数传递到Thread类的构造器中,创建Thread类的对象
5、通过Thread类的对象调用start()方法

线程的生命周期

新建、就绪、运行、阻塞、死亡
java学习日记14,多线程基础
死亡是所有线程的终点,阻塞只是一种临时状态。
阻塞状态结束后并不马上回到运行状态,而是进入就绪状态再次等待分配CPU的执行权。