会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
北洛
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
···
21
下一页
2021年6月30日
Java并发之ReentrantLock源码解析(三)
摘要: ReentrantLock和BlockingQueue 首先,看到这个标题,不要怀疑自己进错文章,也不要怀疑笔者写错,哈哈。本章笔者会从BlockingQueue(阻塞队列)的角度,看看juc包下的阻塞队列是如何使用ReentrantLock。这个章节笔者会介绍部分阻塞队列的源码,但不会着墨过多,我
阅读全文
posted @ 2021-06-30 18:59 北洛
阅读(253)
评论(0)
推荐(0)
2021年6月29日
Java并发之ReentrantLock源码解析(二)
摘要: 在了解如何加锁时候,我们再来了解如何解锁。可重入互斥锁ReentrantLock的解锁方法unlock()并不区分是公平锁还是非公平锁,Sync类并没有实现release(int arg)方法,这里会实现调用其父类AbstractQueuedSynchronizer的release(int arg)
阅读全文
posted @ 2021-06-29 12:56 北洛
阅读(290)
评论(0)
推荐(0)
Java并发之ReentrantLock源码解析(一)
摘要: ReentrantLock ReentrantLock是一种可重入的互斥锁,它的行为和作用与关键字synchronized有些类似,在并发场景下可以让多个线程按照一定的顺序访问同一资源。相比synchronized,ReentrantLock多了可扩展的能力,比如我们可以创建一个名为MyReentr
阅读全文
posted @ 2021-06-29 05:56 北洛
阅读(491)
评论(0)
推荐(0)
2021年6月19日
Redis源码解析之跳跃表(三)
摘要: 我们再来学习如何从跳跃表中查询数据,跳跃表本质上是一个链表,但它允许我们像数组一样定位某个索引区间内的节点,并且与数组不同的是,跳跃表允许我们将头节点L0层的前驱节点(即跳跃表分值最小的节点)zsl->header.level[0].forward当成索引0的节点,尾节点zsl->tail(跳跃表分
阅读全文
posted @ 2021-06-19 05:59 北洛
阅读(270)
评论(0)
推荐(0)
2021年6月18日
Redis源码解析之跳跃表(二)
摘要: 上一章,笔者和大家一起学习了如何把一个节点插入到跳跃表中。现在,再让我们学习如何将一个元素从跳跃表中移除。如果大家对zset还有印象,应该会记得zset这个结构体有两个字段:zsl(跳跃表)和dict(字典)。这个字典是用于存储元素和分值用的,当我们需要查询或删除一个元素的分值,如果没有这个字典,我
阅读全文
posted @ 2021-06-18 22:56 北洛
阅读(227)
评论(0)
推荐(0)
Redis源码解析之跳跃表(一)
摘要: 跳跃表(skiplist) 有序集合(sorted set)是Redis中较为重要的一种数据结构,从名字上来看,我们可以知道它相比一般的集合多了一个有序。Redis的有序集合会要求我们给定一个分值(score)和元素(element),有序集合将根据我们给定的分值对元素进行排序。Redis共有两种编
阅读全文
posted @ 2021-06-18 22:52 北洛
阅读(384)
评论(0)
推荐(0)
2021年4月17日
Redis高可用集群
摘要: Redis集群方案比较 在Redis3.0以前的集群一般是借助哨兵sentinel工具来监控主节点的状态,如果主节点异常,则会做主从切换,将某一台slave作为master。哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般,特别是在主从切换的瞬间存在访问瞬断的情况,集群会需要十几秒甚至几十秒的
阅读全文
posted @ 2021-04-17 17:56 北洛
阅读(696)
评论(0)
推荐(0)
2021年4月10日
Redis主从&哨兵集群搭建
摘要: 主从集群 在搭建主从集群前,我们先把Redis安装起来: #解压Redis压缩包 [root@master lf]# tar -zxvf redis-6.2.1.tar.gz …… #安装gcc [root@master redis-6.2.1]# yum install gcc …… [root@
阅读全文
posted @ 2021-04-10 20:26 北洛
阅读(515)
评论(0)
推荐(0)
2021年2月28日
Java并发之ThreadPoolExecutor源码解析(三)
摘要: Worker 先前,笔者讲解到ThreadPoolExecutor.addWorker(Runnable firstTask, boolean core),在这个方法中工作线程可能创建成功,也可能创建失败,具体视线程池的边界条件,以及当前内存情况而定。 那么,如果线程池当前的状态,是允许创建Work
阅读全文
posted @ 2021-02-28 20:56 北洛
阅读(293)
评论(0)
推荐(1)
2021年2月25日
Java并发之ThreadPoolExecutor源码解析(二)
摘要: ThreadPoolExecutor ThreadPoolExecutor是ExecutorService的一种实现,可以用若干已经池化的线程执行被提交的任务。使用线程池可以帮助我们限定和整合程序资源,尽可能避免创建新的线程来执行任务从而降低任务调用的开销,在执行大量异步任务的时候反而能获得更好的性
阅读全文
posted @ 2021-02-25 22:31 北洛
阅读(349)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
···
21
下一页
公告