种类
- volatile:原子操作
- synchronized:内部锁,锁自动释放
- ReadWriteLock:读写锁
- ReentranLock:重入锁,锁需要在finally中释放
- Condition:拥有Lock的对象和Lock一起使用,Lock的增强
- Semaphore:信号量
- ThreadLocal:线程局部变量,为每个线程提供变量副本
性能 如何提高性能?
- ☞避免死锁
- ☞减少锁持有时间
- ☞减少锁粒度
- ☞读写分离锁替换独占锁
- ☞自旋锁,当没有取得锁时不挂起转而进行自我循环,直到设定的超时挂起或取得锁,如果最终还是要超时挂起那么就没必要自旋了