线程

 

 

run 方法是方法的调用 先去运行run方法里面的 运行完了
在运行main方法里面的代码
但是start 方法是Thread 继承的方法
他可以分支两条线程
一条是run方法
一条是main 主方法
线程3个启动方式
1
.extends Thread 重写run 方法 new Thread ().start(); 直接启动 2. implements Runable接口 实现run方法 而且 new Thread(new MyRun).start(); 需要将对象传入Thread里面 new Thread(()->{ system.out.print("231") }).start 3通过线程池启动
线程的三个方法

sleep 让睡眠的线程不执行 让其他线程执行
yield 谦让 当正在cpu运行的线程调用yield 方法时 会谦让其他线程 自己回到等待队列
有可能下次还是自己运行
join 两个线程 t1,t2 如果在t1的某个点上调用t2.join
t1就会等待t2运行完了在继续运行   
线程的三种状态
new  当我们new Thread 但是还没有调用start 方法时是new 状态

当调用start 方法时 是runable 状态 
runable 状态包含两个状态
1 ready  就绪状态  在CPU等待队列中 等待CPU去调度
2 running    正在运行的线程   
当调用yield 方法时会从running 到yeild状态

teminated 线程结束 线程死亡

Block  :只有调用syc  等待进入同步代码块的锁 没有的到锁的时候 Block 状态 
获得到锁的时候是ready就绪状态

waiting  调用wait  join park  进入ready状态  

timewaiting  过一段时间 在进入ready状态

 

posted @ 2022-04-27 10:19  花心大萝卜li  阅读(23)  评论(0)    收藏  举报