首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
一角钱技术
掘友等级
Java架构师
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
174
文章 167
沸点 7
赞
174
返回
|
搜索文章
最新
热门
并发编程之synchronized深入理解
在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile。 多…
CPU有缓存一致性协议(MESI),为何还需要volatile
前面我们从操作系统底层了解了现代计算机结构模型中的CPU指令结构、CPU缓存结构、CPU运行调度以及操作系统内存管理,并且学习了Java内存模型(JMM)和 volatile 关键字的一些特性。本篇来深入理解CPU缓存一致性协议(MESI),最后来讨论既然CPU有缓存一致性协议…
一文读懂Java内存模型(JMM)及volatile关键字
上一篇我们从操作系统底层工作的整体了解了并发编程在硬件以及操作系统层面的一些知识,本篇我们继续来学习JMM模型以及Volatile关键字的那些面试必问的一些知识点。 Java 内存模型(Java Memory Model 简称JMM)是一种抽象的概念,并不真实存在,它描述的一组…
深入理解Redis跳跃表的基本实现和特性
在这里我们先回忆一下普通链表的时间复杂度,可以看到除了 look up 操作是 $O(n)$ 的,其他操作都是 $O(1)$ 的时间复杂度。也就是说你需要随机访问里面的任何一个元素的话,它的时间复杂度平均值是 $O(n)$ 的,这也就是链表它的问题所在。从这里可以看到并没有所谓…
设计模式系列 — 访问者模式
23种设计模式快速记忆的请看上面第一篇,本篇和大家一起来学习访问者模式相关内容。 这是23种设计模式的最后一个——访问者模式,这个模式确实不怎么好理解,不怎么好用,而且实际中也很少用到这个设计模式。 在现实生活中,有些集合对象中存在多种不同的元素,且每种元素也存在多种不同的访问…
设计模式系列 — 解释器模式
持续更新中...... 23种设计模式快速记忆的请看上面第一篇,本篇和大家一起来学习解释器模式相关内容。 给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口…
设计模型系列 — 迭代器模式
持续更新中...... 23种设计模式快速记忆的请看上面第一篇,本篇和大家一起来学习迭代器模式相关内容。 在现实生活以及程序设计中,经常要访问一个聚合对象中的各个元素,如“数据结构”中的链表遍历,通常的做法是将链表的创建和遍历都放在同一个类中,但这种方式不利于程序的扩展,如果要…
设计模式系列 — 中介者模式
持续更新中...... 23种设计模式快速记忆的请看上面第一篇,本篇和大家一起来学习中介者模式相关内容。 定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。 对象与对象之间存在…
设计模式系列 — 状态模式
持续更新中...... 23种设计模式快速记忆的请看上面第一篇,本篇和大家一起来学习状态模式相关内容。 对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它…
设计模式系列 — 命令模式
持续更新中...... 23种设计模式快速记忆的请看上面第一篇,本篇和大家一起来学习命令模式相关内容。 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。 在软件系统中,行为请…
下一页
个人成就
优秀创作者
文章被点赞
1,486
文章被阅读
263,128
掘力值
7,837
关注了
16
关注者
530
收藏集
0
关注标签
13
加入于
2018-12-12