点个关注,必回关
一、线程的生命周期和状态图:
图一:
图二
二、线程状态
1:新建
2:就绪(拿到执行权开始运行)
3:运行
4:阻塞
5:死亡
三、线程生命周期方法详解:
start():
用户启动线程和run()方法相同,不过run()方法可以重复调用,start()方法只能调用一次
wait() notify() notifyAll()
为Object类所有的方法,wait() 等待,notify() 唤醒,某一线程执行完唤醒结束,notifyAll() 会唤醒所有等待的线程
使用范式:
等待方:
1:获取锁对象
2:使用循环,不满足条件.wait 等待
3:条件满足,执行业务操作
通知方:
1:获取锁对象
2:改变判断条件
3:获取执行结果
yield():
放弃执行权,重新进入cpu的调度范围
sleep():
使当前正在执行的线程停留(暂停执行)指定的毫秒数,这取决于系统定时器和调度程序的精度和准确性
join():
线程加入方法,加入以后优先执行加入的方法