2019年10月19日
摘要: java并发编程笔记(九)——多线程并发最佳实践 使用本地变量 使用不可变类 最小化锁的作用域范围 使用线程池Executor,而不是直接new Thread执行 宁可使用同步也不要使用线程的wait和notify 使用BlockingQueue实现生产 消费模式 使用并发集合而不是加了锁的同步集合 阅读全文
posted @ 2019-10-19 20:00 徐杰 阅读(374) 评论(0) 推荐(0) 编辑
摘要: java并发编程笔记(八)——死锁 死锁发生的必要条件 互斥条件 进程对分配到的资源进行排他性的使用,即在一段时间内只能由一个进程使用,如果有其他进程在请求,只能等待。 请求和保持条件 进程已经保持了至少一个资源,但是又提出了新的资源请求,而该资源又被其他进程占有,造成请求阻塞,但是又对自己已经占有 阅读全文
posted @ 2019-10-19 19:44 徐杰 阅读(170) 评论(0) 推荐(0) 编辑
摘要: java并发编程笔记(七)——线程池 new Thread弊端 每次new Thread新建对象,性能差 线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或者OOM 缺少更多功能,如更多执行、定期执行、线程中断 线程池的好处 重用存在的线程,减少对象创建、消亡的开销, 阅读全文
posted @ 2019-10-19 14:20 徐杰 阅读(174) 评论(0) 推荐(0) 编辑