随笔分类 - 并发编程
Java并发编程
摘要:问题现象 在并发操作的场景下(对业务接口连续请求三次),使用基于redis的分布式锁 RedissonLock解锁时抛出异常。 问题复现代码 public boolean testLock(Integer type) { RLock lock = redissonClient.getLock("te
阅读全文
摘要:1、跳出来看全景,钻进去看本质 在进入一个新领域学习时,建立一张学习线路的全景图,由点成线由线成面,贯穿整个学习过程。(全景图就像一棵树的树干,有了树干才会有树枝,才会枝繁叶茂) 在学到某个具体问题时,钻进去看本质,了解技术背后的理论模型,了解当初这个理论产生的环境时什么,主要解决什么问题。 方法论
阅读全文
摘要:文章结构 前言 想要读懂 Java 中的并发包,就是要先读懂 CAS 机制,因为 CAS 是并发包的底层实现原理。本文主要讨论 synchronized:大材小用 我们先来看几行代码: 假如有100个线程同时调用 increment() 方法对 i 进行自增操作,i 的结果会是 100 吗? 学会多
阅读全文
摘要:1.为什么要使用线程池? 降低资源消耗。通过重复利用已创建的线程降低线程创建、销毁线程造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配、调优
阅读全文