摘要: 最近线上应用发现了一个问题,系统启动构建缓存会出现缓存数据为空的情况,仔细分析整个流程 ,开始以为是代码疏忽导致bug,后来在仔细分析整个流程发现是由于a缓存先进行缓存、b在缓存数据, 取数据时发现a缓存中存在,但b缓存中数据还未缓存,取b缓存为空导致异常。 现在是调整了顺序,需要b先缓存然后在a进 阅读全文
posted @ 2017-01-12 18:14 杉枫 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 对于有些场景,需要a、b线程按照顺序去执行,因为b线程要依赖a线程对某共享资源或 状态处理后,对于这种情况可以使用 private CountDownLatch connectedSignal = new CountDownLatch(1); // 设置同步锁在a线程执行完成后connectedSi 阅读全文
posted @ 2017-01-12 17:50 杉枫 阅读(422) 评论(0) 推荐(0) 编辑