摘要: JDK源码分析实战系列-ThreadLocal 自旋锁-JUC系列 Doug Lea文章阅读记录-JUC系列 AQS源码一窥-JUC系列 AQS源码二探-JUC系列 AQS源码三视-JUC系列 Future源码一观-JUC系列 本人闲暇在维护项目,希望一起交流: https://github.com 阅读全文
posted @ 2021-11-18 21:41 每当变幻时 阅读(55) 评论(0) 推荐(0) 编辑

2022年12月22日

摘要: 前言 可以通过分析PriorityBlockingQueue来了解JUC中的线程安全的队列实现的一些套路,这些套路会在JUC中其他数据结构实现上反复出现,从而可以更合理的了解那些实现机制背后通用的部分。 BlockingQueue A Queue that additionally supports 阅读全文
posted @ 2022-12-22 17:47 每当变幻时 阅读(61) 评论(0) 推荐(0) 编辑

2022年11月20日

摘要: 完全二叉树 一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。 特殊之处是这个类型可以通过数组来实现,一个节点的两个子节点的只需要计算下标获得,分别是[2*n+ 阅读全文
posted @ 2022-11-20 17:25 每当变幻时 阅读(565) 评论(0) 推荐(0) 编辑

2022年10月28日

摘要: 概述 初步了解了NIO核心组件的API,也大致知道了如何启动一个网络IO服务和客户端后。本篇在此基础上做一些补充,把一些必须要理解的 正文 ServerSocketChannel的accept方法和Selecor的select 在ServerSocketChannel的API中我们可以通过accep 阅读全文
posted @ 2022-10-28 17:08 每当变幻时 阅读(42) 评论(0) 推荐(0) 编辑

2022年10月7日

摘要: 概览 最近弄几篇NIO基础相关的内容,用于Netty源码解析使用。因为没有这些知识就产生不了问题,也就无法深入一个成熟的网络IO框架源码进行学习。 NIO三大核心组件: 1,Channel 2,Buffer 3,Selector 先概述一下三者的概念和之间的关系,再逐个了解组件的API打个基础。 对 阅读全文
posted @ 2022-10-07 23:33 每当变幻时 阅读(25) 评论(0) 推荐(0) 编辑

2022年8月27日

摘要: 前言 今天想聊一聊幂等相关的知识,以及实现一个幂等公共组件需要重点涉及和思考的点。 概念 首先,什么是幂等,在实际代码生产过程中有什么作用呢? 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。 举个例子,假如有个方法,用于修改一个订单的状态为已完成,只改一个状态字段,要 阅读全文
posted @ 2022-08-27 12:04 每当变幻时 阅读(3103) 评论(0) 推荐(0) 编辑

2022年7月3日

摘要: 背景介绍 在程序中,主线程启动一个子线程进行异步计算,主线程是不阻塞继续执行的,这点看起来是非常自然的,都已经选择启动子线程去异步执行了,主线程如果是阻塞的话,那还不如主线程自己去执行不就好了。那会不会有一种场景,异步线程执行的结果主线程是需要使用的,或者说主线程先做一些工作,然后需要确认子线程执行 阅读全文
posted @ 2022-07-03 22:43 每当变幻时 阅读(429) 评论(0) 推荐(0) 编辑

2022年5月15日

摘要: AQS源码三视-JUC系列 前两篇文章介绍了AQS的核心同步机制,使用CHL同步队列实现线程等待和唤醒,一个int值记录资源量。为上层各式各样的同步器实现画好了模版,像已经介绍到的ReentrantLock,Semaphroe,CountDownLatch都是在模版基础上实现的。花里胡哨,万变不离其 阅读全文
posted @ 2022-05-15 16:00 每当变幻时 阅读(289) 评论(0) 推荐(0) 编辑

2022年2月26日

摘要: 本文已在公众号上发布,感谢关注,期待和你交流。 AQS源码二探-JUC系列 共享模式 doAcquireShared 这个方法是共享模式下获取资源失败,执行入队和等待操作,等待的线程在被唤醒后也在这个方法中自旋执行,直到拿到资源。 /** * Acquires in shared uninterru 阅读全文
posted @ 2022-02-26 17:32 每当变幻时 阅读(117) 评论(0) 推荐(0) 编辑

2022年2月9日

摘要: AQS源码一窥 考虑到AQS的代码量较大,涉及信息量也较多,计划是先使用较常用的ReentrantLock使用代码对AQS源码进行一个分析,一窥内部实现,然后再全面分析完AQS,最后把以它为基础的同步器都解析一遍。 暂且可以理解AQS的核心是两部分组成: volatile修饰的int字段state, 阅读全文
posted @ 2022-02-09 22:02 每当变幻时 阅读(162) 评论(0) 推荐(1) 编辑

2022年1月21日

摘要: 3.3 Queues The heart of the framework is maintenance of queues of blocked threads, which are restricted here to FIFO queues. Thus, the framework does 阅读全文
posted @ 2022-01-21 20:41 每当变幻时 阅读(191) 评论(0) 推荐(0) 编辑

导航