并发
1
泰山与水
古今之成大事者,不惟有超世之才,亦惟有坚韧不拔之志
展开
-
(转) Java线程池实现原理及其在美团业务中的实践
Java线程池实现原理及其在美团业务中的实践https://mp.weixin.qq.com/s/tIWAocevZThfbrfWoJGa9w思考总结关键提升在降低了线程池参数修改的成本 风险:线程池大小一般不能随意调整,不合理的调整可能带来系统间的雪崩 针对风险设计的一套监控,通知,协调全流程生命周期管理这个是保障和创新点...转载 2022-03-02 10:49:28 · 212 阅读 · 0 评论 -
【分布式锁】-3-zookeeper相互监听的分布式锁
优点避免每次抢锁的时候都要全部去抢,因为第一次抢失败后,后面通过监听机制排队了 ZK的自带顺序节点,通过ZK内部的ZXID保证顺序的特性 释放锁简单,删除节点被删除会事件通知监听节点,实现分布式线程通信 临时节点当会话关闭后整个数据节点都会自动删除,释放锁 不会出现Redis的数据不一致问题(当出现Leader重选后,新Leader的数据和Old的数据不一致)缺点顺序临时节点解决了排队问题,类似实现了公平的锁,效率会降低,通常非公平锁比公平锁效率高 获取锁的自动超时功能需要自己扩展 锁原创 2020-06-13 13:02:10 · 193 阅读 · 0 评论 -
【分布式锁】-1-Redis实现
加锁通过setnx向特定的key写入一个随机值,并同时设置失效时间,写值成功既加锁成功; 注意点:必须给锁设置一个失效时间 避免死锁 加锁时,每个节点产生一个随机字符串 避免锁误删 写入随机值与设置失效时间必须是同时的 保证加锁是原子的SET key val...原创 2020-05-05 20:10:49 · 190 阅读 · 0 评论 -
【分布式锁】-2-zookeeper-基于同名节点实现
流程所有节点都去创建临时lock节点,同一个目录下所有节点的名字是唯一的,因此只有一个节点创建成功 创建成功的节点就获取到锁 创建失败的节点监听lock节点,当它lock节点删除的后,重新创建节点进入下一次抢锁过缺点获取锁的线程可以主动删除节点释放锁,或者等连接关闭后临时节点会自动删除,但是如果一直持有呢?缺少超时机制 所有抢锁的节点都会去一起创建,如果并发很高的话,每次只有一个节点获取成功,抢的过程很浪费资源。确少排队机制...原创 2020-06-11 21:33:26 · 348 阅读 · 0 评论 -
JUC-线程池详解
文章目录一、 ThreadPoolExecutor 数据成员1.1、线程池的状态1.2、ThreadPoolExecutor 的核心参数1.3、workers1.4、mainLock二、 ThreadPoolExecutor 的构造函数2.1、corePoolSize、maximumPoolSize、workQueue 三者关系2.2、keepAlive...原创 2020-04-25 11:07:51 · 191 阅读 · 0 评论