实现多线程的3种方式:
1.继承Therad类,调用Theard.start方法开启线程
2.实现Runable类
3.继承
继承Therad类开启线程为什么用start而不直接调用run方法
因为直接调用run方法就是普通的调用方法,而不是开启线程
start调用start0方法,而start0是由jvm调用,jvm怎么调用时根据不同操作系统的算法来调用
线程插队:
yield方法与join方法,join方法一定成功,yield不一定,根据cpu的调度实现yield,join方法是指其他线程完成再执行本线程
守护线程:当主线程结束后,子线程跟着结束
线程的7个状态:
同步:
锁的类型:java线程锁有哪几种_Java锁有哪些种类,以及区别-优快云博客
互斥锁就是悲观锁
对于不同对象使用悲观锁不推荐用String 黑马P178
因为String常量在计算机中只有一份,除非重新new一个String
死锁:
释放锁: