摘要: 阅读全文
posted @ 2020-03-02 21:21 开顺 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 在学习Reactor模式之前,我们需要对“I/O的四种模型”以及“什么是I/O多路复用”进行简单的介绍,因为Reactor是一个使用了同步非阻塞的I/O多路复用机制的模式。 I/O的四种模型 I/0 操作 主要分成两部分① 数据准备,将数据加载到内核缓存② 将内核缓存中的数据加载到用户缓存 Sync 阅读全文
posted @ 2020-02-29 22:06 开顺 阅读(4452) 评论(1) 推荐(1) 编辑
摘要: Volatile的重排序 1、当第二个操作为volatile写操做时,不管第一个操作是什么(普通读写或者volatile读写),都不能进行重排序。这个规则确保volatile写之前的所有操作都不会被重排序到volatile之后; 2、当第一个操作为volatile读操作时,不管第二个操作是什么,都不 阅读全文
posted @ 2020-02-25 16:36 开顺 阅读(1367) 评论(0) 推荐(0) 编辑
摘要: 一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLo 阅读全文
posted @ 2020-02-25 14:49 开顺 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 一、什么是死锁 死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。例如,在某一个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2 所占用,而P2在未释放打印机之前,又提出请求使用正被 阅读全文
posted @ 2020-02-25 11:52 开顺 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 不难看出,loHead和loTail两个节点分别记录不需要移动的链表的头部和尾部,hiHead和hiTail分别记录需要移动的链表头部和尾部. 假设在扩容的时候某个数组下有这样一个链表 : image 其中,假设天蓝色部分的不需要挪动,红色部分的需要挪动 第一步 : 建立loHead loTail 阅读全文
posted @ 2020-02-24 16:26 开顺 阅读(791) 评论(0) 推荐(1) 编辑
摘要: 大家都知道(jdk1.8)HashMap中计算数组下标是HashMap的核心算法。小编今天在看HashMap源码中看到了hash(Object key)方法百思不得其解。小编问百度,查找相关博客,甚至连HashMap的关于hash(Object key)英文解释都看了。但是都只是说了为了尽量均匀,没 阅读全文
posted @ 2020-02-24 15:39 开顺 阅读(2582) 评论(2) 推荐(0) 编辑
摘要: 偏向锁不会主动释放 https://www.jianshu.com/p/31b6a0b1b84b 阅读全文
posted @ 2020-02-22 17:33 开顺 阅读(246) 评论(0) 推荐(0) 编辑
摘要: - -Xms 初始堆内存大小,默认物理内存64/1 -Xms = -XX:InitialHeapSize -Xmx 最大堆内存,默认物理内存4/1 -Xmx = -XX:MaxHeapSize -Xss 栈内存大小 设置单个线程栈大小,一般默认512~1024kb。 单个线程栈大小跟操作系统和JDK 阅读全文
posted @ 2020-02-19 23:05 开顺 阅读(164) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/soonfly/article/details/70147205 在翻《深入理解Java虚拟机》的书时,又看到了2-7的 String.intern()返回引用的测试。其实要搞明白String.intern(),我总结了下面几条规则:一、new Strin 阅读全文
posted @ 2020-02-19 23:04 开顺 阅读(128) 评论(0) 推荐(0) 编辑