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

浙公网安备 33010602011771号