1.线程中断
可调用interrupt方法改变线程的中断状态,在线程中使用isInterrupted判断当前线程是否被中断
2.线程的6种状态:
New(新创建):使用如new Thread()创建一个新线程
Runnable(可运行):调用了线程的start()方法
Blocked(被阻塞):线程试图获取一个内部的对象锁,但该锁被其他线程持有,则进入阻塞
Waiting(等待):调用了wait等方法需要其余方法唤醒时
Timed waiting(计时等待):设置过超时参数的方法,执行时会进行计时等待
Terminated(被终止):run方法执行完正常死亡或因异常意外死亡
3.守护线程(后台线程)
运行于后台的线程,典型的就是GC线程
4.线程异常处理器
具体怎么配还要研究下
5.竞争与锁
加锁的方式:ReentrantLock进行显式的声明锁,或者使用synchronized声明锁,这两类都是可重入锁
ReentrantLock可声明条件对象来使线程进入等待和唤醒的状态,等同于synchronized的wait和notifyAll
对象锁和方法锁本质一样,都是获取一个对象的锁,方法锁就是获取当前对象的锁
6.CAS原理图