如何理解Java的多线程

多线程

1、线程和进程的区别:
程序就相当于我们写的代码块
进程就是去执行我们所写的代码块

线程的创建

2、创建线程有三大方法:
一、继承Thread类,并实现run方法
实例如下:
如何理解Java的多线程
总结:继承Thread类创建线程步骤:
1、创建一个Thread的子类,并实现run方法
2、创建子类的实例方法,并调用start方法准备就绪
二、实现runnable接口
如何理解Java的多线程
总结:实现runnable接口创建线程步骤:
1、实现runnable接口,并实现run方法
2、将实现接口的类作为参数传入Thread类实例中,调用Thread方法,使线程准备就绪
三、使用callable和future接口(省略)
总之:无论是runnable接口还是callable或……,都最终于Thread发生关系

线程的生命周期

线程的生命周期(5个):
新建状态
就绪状态:start()
运行状态:run()
堵塞状态:
死亡状态:stop()

就绪状态:等待执行,并没有运行
运行状态:可以使用sleep()就行休眠,但该方法会抛出 InterruptedException
堵塞状态:可以通过isAlive()来判断是否处于运行状态 如果isAlive为true:处于就绪、运行、堵塞这三种状态之一 如果isAlive为false:处于新建或死亡状态

线程的优先级

线程优先级(主线程默认为5):
max_priority:最高优先级,值为10
norm_priority:普通优先级,值为5
min_priority:最低优先级,值为1
总结:优先级越高,获得执行CPU机会越多;优先级越低,获得CPU执行机会越少(抢占式)