并发编程基础(一)

线程只有5中状态,整个生命周期就是这5中状态的切换

2102897-1ec3100a6c848cd8.png
新建    就绪  阻塞  运行  死亡

run()和start() :run方法就是普通对象的普通方法,只有调用了start()后,Java才会将线程对象和操作系统中实际的线程进行映射,再来执行run方法。

yield():让出cpu的执行权,将线程从运行转到就绪状态,但是下个时间片,该线程依然有可能被再次选中运行。

线程的优先级

取值为1~10,缺省为5,但线程的优先级不可靠,不建议作为线程开发时候的手段

守护线程

和主线程共死,finally不能保证一定执行

volatile 关键字(最轻量的同步机制

适用于只有一个线程写,多个线程读的场景,因为他只能确保可见性;

ThreadLocal

线程变量,可以理解为是个map,类型 Map<Thread,Integer>

sychronized 内置锁

对象锁,锁的是类的对象实例;

类所,锁的是每个类的class对象,每个类的Class对象在一个虚拟机中只有一个,所以类锁也只有一个;

猜你喜欢

转载自blog.csdn.net/weixin_34244102/article/details/87196190