基础
- 多线程一定快么?(不是)
- 需要上下文切换的开销
- 创建销毁线程需要开销
- 协程(单线程运行多任务)
- 怎么避免死锁
- 避免一个线程同时获取多个锁
- 避免一个线程在锁内同时占咏多个资源
- 定时锁
- 加锁解锁在一个数据库链接里
- 线程的六种状态
- new
- runnable
- blocked
- waiting
- time_waiting
- terminated
- sleep和wait的区别
- sleep不会释放锁
- wait会释放对象锁,需要写到synconized方法块里面
- join是用在线程上的,不会释放对象锁
- yield 做出一个让步
锁
- synchronized
- 便捷:隐式获取释放锁
- lock
- 可操作性
- 可中断获取锁
- 超时获取锁
AQS
- 同步器:面向锁的实现者
- 锁: 面向使用者