Java SDK并发包里的Condition实现了管程模型里面的条件变量
Lock和Condition(上):隐藏在并发包中的管程
Java SDK并发包里的Lock接口里面的方法,支持超时、非阻塞、可中断的方式获取锁
并发理论基础总结
学好理论有思路,关注细节定成败
如何用面向对象思想写好并发程序
封装共享变量、识别共享变量间的约束条件、制定并发访问策略
Java线程(下):为什么局部变量是线程安全的
每个线程都有自己的调用栈,局部变量保存在线程各自的调用栈里面,不会共享,所以自然也就没有并发问题
Java线程(中):创建多少线程才是合适的
区分I/O密集型和CPU密集型,将硬件的性能发挥到极致
Java线程(上):Java线程的生命周期
New、Runnable、Blocked、Waiting、Timed_Waiting、Terminated
管程:并发编程的万能钥匙
synchronized+wait/notify是Java语言对MESA模型管程的精简实现
安全性、活跃性以及性能问题
安全性问题(数据竞争、竞态条件);活跃性问题(死锁、活锁、饥饿);性能[吞吐量、延迟、并发量]问题(无锁、较少锁持有的时间)
用“等待-通知”机制优化循环等待
Java语言内置的synchronized配合wait()、notify()、notifyAll()这三个方法可以快速实现等待-通知机制。