疑问:
1、一个 int 变量不同比特位代表不同的业务,实现原子性 (技巧)
2、线程池如何扩容、缩容(线程执行完 run 方法后操作系统会自动回收线程)
3、锁的实现
备注:注意看线程时如何补充和回收的
无锁算法(CAS机制)
采用硬件提供的 cas 机制实现加锁,无需内核辅助(普通的加锁需借助操作系统,此时存在内核态和用户态的交互,代价过高)
LockSupport.park、LockSupport.unpark方法使用,CAS 机制的缺点:ABA 问题通过类似乐观锁的机制解决,就是加一个时间戳,sun.misc.Unsafe提供了一些底层操作指令。