- 博客(9)
- 资源 (3)
- 收藏
- 关注
原创 面试并发volatile关键字时,我们应该具备哪些谈资?
提前发现更多精彩内容,请访问 个人博客提前发现更多精彩内容,请访问 个人博客提前发现更多精彩内容,请访问 个人博客写在前面在 可见性有序性,Happens-before来搞定 文章中,happens-before 的原则之一: volatile变量规则对一个 volatile 域的写, happens-before 于任意后续对这个 volatile 域的读按理说了解了这个规则,...
2019-09-30 08:30:26 1930
转载 读万卷书不如行万里路?
这是国庆前的最后一篇推文,预祝小伙伴儿国庆假期开心,顺利读万卷书不如行万里路,如果不能行万里路(没钱..),那请开始读万卷书个人博客:https://dayarch.t...
2019-09-30 08:20:00 774
转载 Junit5 新特性你用过多少?
点击蓝色「日拱一兵」关注,持续侦破 Java 技术案件前言单元测试是软件开发中必不可少的一环,但是在平常开发中往往因为项目周期紧,工作量大而被选择忽略,这样往往导致软件问...
2019-09-25 08:00:00 1101
原创 解决原子性问题?脑海中有这个模型就可以了
上一篇文章 可见性有序性,Happens-before来搞定,解决了并发三大问题中的两个,今天我们就聊聊如何解决原子性问题原子性问题的源头就是 线程切换,但在多核 CPU 的大背景下,不允许线程切换是不可能的,正所谓「魔高一尺,道高一丈」,新规矩来了:互斥: 同一时刻只有一个线程执行实际上,上面这句话的意思是: 对共享变量的修改是互斥的,也就是说线程 A 修改共享变量时其他线程不能...
2019-09-23 08:41:58 1484 1
原创 可见性有序性,Happens-before来搞定
写在前面上一篇文章并发 Bug 之源有三,请睁大眼睛看清它们 谈到了可见性/原子性/有序性三个问题,这些问题通常违背我们的直觉和思考模式,也就导致了很多并发 Bug为了解决 CPU,内存,IO 的短板,增加了缓存,但这导致了可见性问题编译器/处理器擅自优化 ( Java代码在编译后会变成 Java 字节码, 字节码被类加载器加载到 JVM 里, JVM 执行字节码, 最终需要转化为汇编...
2019-09-17 08:18:03 1579
原创 并发Bug之源有三,请睁大眼睛看清它们
写在前面- 生活中你一定听说过——能者多劳- 作为 Java 程序员,你一定听过——这个功能请求慢,能加一层缓存或优化一下 SQL 吗?- 看过中国古代神话故事的也一定听过——天上一天,地上一年一切设计来源于生活,上一章 学并发编程,透彻理解这三个核心是关键 中有讲过,作为"资本家",你要尽可能的榨取 CPU,内存与 IO 的剩余价值,但三者完成任务的速度相差很大,CPU >...
2019-09-10 08:30:07 1520 1
原创 基础面试,为什么面试官总喜欢问String?
关于 Java String,这是面试的基础,但是还有很多童鞋不能说清楚,所以本文将简单而又透彻的说明一下那个让你迷惑的 String在 Java 中,我们有两种方式创建一个字符串String x = "abc";String y = new String("abc");你常见也常写第一种,很少见第二种,但面试还总问这类问题,双引号和构造器两种形式创建字符串到底有什么差别呢?先来看例...
2019-09-10 08:24:09 1140
原创 学并发编程,透彻理解这三个核心是关键
写在前面上一篇文章这次走进并发的世界,请不要错过 给大家带了并发编程的开胃菜,接下来我们逐步上正餐,在吃正餐之前,我还要引用那首诗词: 「横看成岭侧成峰,远近高低各不同」,远看看轮廓,近看看细节,不断切换思维或视角来学习远看并发,并发编程可以抽象成三个核心问题: 分工、同步/协作、互斥如果你已经工作了,那么你一定听说过或者正在应用敏捷开发模式来交付日常的工作任务,我们就用你熟悉的流程来解释...
2019-09-04 08:39:24 2467
原创 学并发编程,透彻理解这三个核心是关键
写在前面上一篇文章这次走进并发的世界,请不要错过给大家带了并发编程的开胃菜,接下来我们逐步上正餐,在吃正餐之前,我还要引用那首诗词: 「横看成岭侧成峰,远近高低各不同」...
2019-09-02 08:00:00 171
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人