随笔- 43  评论- 22  文章- 0 
  2020年1月18日
摘要:明晚回家的汽车。下午在商城路置办了些给父母的东西,回来后又趁着年前最后一个在上海空闲的傍晚出门跑了个步,跑完回来洗漱,将昨晚买多的菜简单做了点吃的,又给家里打了个电话,本应着手收拾行李,却心绪不宁。 冬夜的上海,越临近过年越冷了起来,窗外昏黄的路灯下,仍然有行人在穿行着,往来奔波,或内心火热,或忙碌 阅读全文
posted @ 2020-01-18 21:50 张曾经 阅读 (0) 评论 (0) 编辑
  2020年1月13日
摘要:最近时间利用的很差,一方面2020已至,快要而立的自己却时不时地被各种焦虑言论波及,内心起伏动荡;另一方面要准备结婚,提前做一些各种各样的准备。一眨眼1月又要过去一半了,需要发文做一下与过去的了断,以及对未来的准备。 19年不管外界大环境怎么样,对我来说还算顺利。4月份跳槽到国内某知名保险公司,正式 阅读全文
posted @ 2020-01-13 00:17 张曾经 阅读 (6) 评论 (0) 编辑
  2020年1月5日
摘要:前言 本文将把Spring在Bean的生命周期中涉及到的后置处理器一一梳理出来,并简要说一下功能,至于每个后置处理器在实际扩展中的用处,还要后续慢慢探索总结。 正文 下面一步步跟进探寻那些后置处理器们。首先进入AbstractApplicationContext类中的refresh方法,继续追踪至此 阅读全文
posted @ 2020-01-05 11:25 张曾经 阅读 (69) 评论 (0) 编辑
  2019年12月22日
摘要:前言 Semaphore也是JUC包中一个用于并发控制的工具类,举个常用场景的例子:有三台电脑五个人,每个人都要用电脑注册一个自己的账户,这时最开始只能同时有三个人操作电脑注册账户,这三个人中有人操作完了剩下的两个人才能占用电脑注册自己的账户。这就是Semaphore的经典使用场景,跟并发加锁有点像 阅读全文
posted @ 2019-12-22 10:31 张曾经 阅读 (67) 评论 (0) 编辑
  2019年12月21日
摘要:前言 前面四节学完了AQS最难的两种重入锁应用,下面两节进入实战学习,看看JUC包中其他的工具类是如何运用AQS实现特定功能的。今天一起看一下CountDownLatch。 CountDownLatch可以用来实现多个线程执行完一个功能后让另一个线程继续执行的功能。常见的场景比如大文件的处理,我们需 阅读全文
posted @ 2019-12-21 21:54 张曾经 阅读 (69) 评论 (0) 编辑
摘要:前言 继续JUC包中ReentrantReadWriteLock的学习,今天学习释放锁。 一、写锁释放锁 入口方法 1 public void unlock() { 2 sync.release(1); 3 } 进入AQS追踪release方法: 1 public final boolean rel 阅读全文
posted @ 2019-12-21 13:29 张曾经 阅读 (54) 评论 (0) 编辑
  2019年12月19日
摘要:前言 前两篇我们讲述了ReentrantLock的加锁释放锁过程,相对而言比较简单,本篇进入深水区,看看ReentrantReadWriteLock-读写锁的加锁过程是如何实现的,继续拜读老Lea凌厉的代码风。 一、读写锁的类图 读锁就是共享锁,而写锁是独占锁。读锁与写锁之间的互斥关系为:读读可同时 阅读全文
posted @ 2019-12-19 22:44 张曾经 阅读 (109) 评论 (0) 编辑
  2019年12月13日
摘要:前言 在AQS系列(一)中我们一起看了ReentrantLock加锁的过程,今天我们看释放锁,看看老Lea那冷峻的思维是如何在代码中笔走龙蛇的。 正文 追踪unlock方法: 1 public void unlock() { 2 sync.release(1); 3 } 很简单的一行,调用了rele 阅读全文
posted @ 2019-12-13 00:00 张曾经 阅读 (108) 评论 (0) 编辑
  2019年12月8日
摘要:前言 ArrayList想必是广大Java程序员开发时最常用的数据结构了,但不一定对其原理都有了解,今天我将结合ArrayList的源码对其进行讲解。本文将围绕ArrayList主要特性(包括适用场景、初始大小、扩容等)、数据存放方式、核心方法实现、其他特性等四个方面进行讲解。 一、ArrayLis 阅读全文
posted @ 2019-12-08 22:46 张曾经 阅读 (25) 评论 (0) 编辑
  2019年12月7日
摘要:前言 AQS即AbstractQueuedSynchronizer,是JUC包中的一个核心抽象类,JUC包中的绝大多数功能都是直接或间接通过它来实现的。本文是AQS系列的第一篇,后面会持续更新多篇,争取将JUC包中AQS相关的常用功能讲清楚,一方面巩固自己的知识体系,一方面亦可与各位园友互相学习。寒 阅读全文
posted @ 2019-12-07 22:38 张曾经 阅读 (108) 评论 (2) 编辑