10 2019 档案
摘要:写在前面 上一篇文章 "共享资源那么多,如何用一把锁保护多个资源?" 文章我们谈到了银行转账经典案例,其中有两个问题: 1. 单纯的用 synchronized 方法起不到保护作用(不能保护 target) 2. 用 Account.class 锁方案,锁的粒度又过大,导致涉及到账户的所有操作(取款
阅读全文
摘要:写在前面 Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据量非常大的时候,你也许发现,POI 是将整个 Excel 的内容全部读出来放入到内存中,所以内存消耗非常严重,如果同时进行包含大
阅读全文
摘要:写在前面 上一篇文章 "原子性问题的宏观理解" 带领大家了解了锁和资源的模型,有了这篇文章的铺垫,相信理解这一篇文章就非常轻松了 当我们要保护单个资源并对其进行修改其实很简单,只需按照下图分三步走 1. 创建受保护资源 R 的锁 2. 加锁进入临界区 3. 解锁走出临界区 上图的关键是「R1 的锁保
阅读全文