05 2020 档案

摘要:cpu volatile 和上一篇java volatile 不一样。 cpu是如何保证各内存之间数据可见性的呢? 答:缓存一致性协议 (MESI cache)。 cache line:cpu缓存行,多大呢 64b字节 阅读全文
posted @ 2020-05-14 21:59 Risus 阅读(136) 评论(0) 推荐(0)
摘要:先解释下cpu指令重排序:cup的执行效率一般是内存的100倍左右,假设当cup先后接收到两条指令,指令1和指令2,指令1在执行指令到内存给cpu返回结果需要5秒,但是指令2的整个过程只需要2秒,那么cpu会优先执行指令2,再执行指令1,这就叫cpu指令重排序. 请看图解: 那么volatile: 阅读全文
posted @ 2020-05-14 20:37 Risus 阅读(143) 评论(0) 推荐(0)
摘要:可重入锁: 例子-- 阅读全文
posted @ 2020-05-13 21:42 Risus 阅读(146) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-05-13 21:36 Risus 阅读(148) 评论(0) 推荐(0)
摘要:死锁:线程之间因条件相互竞争,导致线程都不能正常执行完,从而产生了死锁。 死锁的例子: public class TestDeadLock implements Runnable { public int flag = 1; static Object o1 = new Object(), o2 = 阅读全文
posted @ 2020-05-11 22:40 Risus 阅读(135) 评论(0) 推荐(0)
摘要:如何保证多个线程多同一个资源的共享透明化: 一个有问题的多线程的例子:: public class TestSync implements Runnable{ Timer timer = new Timer(); public static void main(String[] args) { Te 阅读全文
posted @ 2020-05-11 22:34 Risus 阅读(177) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-05-10 23:23 Risus 阅读(111) 评论(0) 推荐(0)
摘要:线程控制方法讲解: 阅读全文
posted @ 2020-05-10 23:20 Risus 阅读(110) 评论(0) 推荐(0)
摘要:什么叫线程,简单来说一句话,就是程序的执行路径。 创建一个线程类,两种方式: 1. 实现Runnable接口 2. 继承Thread类 阅读全文
posted @ 2020-05-10 22:37 Risus 阅读(105) 评论(0) 推荐(0)
摘要:Redis: Remote Dictionary Server(远程字典服务器)。是完全开元免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被人们称为数据结构服务器。 Re 阅读全文
posted @ 2020-05-08 23:20 Risus 阅读(99) 评论(0) 推荐(0)
摘要:传统的ACID: A; 原子性 C: 一致性 I:独立性 D:持久性 分布式数据库的CAP: C(Consistency): 强一致性 A(Availability): 高可用性 P(Partition tolerance): 分区容错性 CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性 阅读全文
posted @ 2020-05-07 22:56 Risus 阅读(594) 评论(0) 推荐(0)
摘要:1. PrepareRefresh() 刷新前的预处理 initPropertySources()初始化一些属性设置 getEnvironment().validateRequiredProperties(); 检验属性的合法等 earlyApplicationEvents = new Linked 阅读全文
posted @ 2020-05-06 19:02 Risus 阅读(1520) 评论(0) 推荐(0)