09 2019 档案

摘要:提前发现更多精彩内容,请访问 "个人博客" 提前发现更多精彩内容,请访问 "个人博客" 提前发现更多精彩内容,请访问 "个人博客" 写在前面 在 "可见性有序性,Happens before来搞定" 文章中,happens before 的原则之一: volatile变量规则 对一个 volatil 阅读全文
posted @ 2019-09-30 08:29 日拱一兵 阅读(776) 评论(0) 推荐(1) 编辑
摘要:上一篇文章 "可见性有序性,Happens before来搞定" ,解决了并发三大问题中的两个,今天我们就聊聊如何解决原子性问题 原子性问题的源头就是 线程切换 ,但在多核 CPU 的大背景下,不允许线程切换是不可能的,正所谓「魔高一尺,道高一丈」,新规矩来了: 互斥: 同一时刻只有一个线程执行 实 阅读全文
posted @ 2019-09-23 08:41 日拱一兵 阅读(618) 评论(0) 推荐(0) 编辑
摘要:写在前面 上一篇文章 "并发 Bug 之源有三,请睁大眼睛看清它们" 谈到了 三个问题,这些问题通常违背我们的直觉和思考模式,也就导致了很多并发 Bug 为了解决 CPU,内存,IO 的短板,增加了缓存,但这导致了可见性问题 编译器/处理器 优化 ( Java代码在编译后会变成 Java 字节码, 阅读全文
posted @ 2019-09-17 08:14 日拱一兵 阅读(881) 评论(0) 推荐(1) 编辑
摘要:写在前面 生活中你一定听说过——能者多劳 作为 Java 程序员,你一定听过——这个功能请求慢,能加一层缓存或优化一下 SQL 吗? 看过中国古代神话故事的也一定听过——天上一天,地上一年 一切设计来源于生活,上一章 "学并发编程,透彻理解这三个核心是关键" 中有讲过,作为"资本家",你要尽可能的榨 阅读全文
posted @ 2019-09-10 08:32 日拱一兵 阅读(885) 评论(2) 推荐(2) 编辑
摘要:关于 Java String,这是面试的基础,但是还有很多童鞋不能说清楚,所以本文将简单而又透彻的说明一下那个让你迷惑的 String 在 Java 中,我们有两种方式创建一个字符串 你常见也常写第一种,很少见第二种,但面试还总问这类问题,双引号和构造器两种形式创建字符串到底有什么差别呢? 先来看例 阅读全文
posted @ 2019-09-05 08:51 日拱一兵 阅读(1668) 评论(5) 推荐(3) 编辑
摘要:写在前面 上一篇文章 "这次走进并发的世界,请不要错过" 给大家带了并发编程的开胃菜,接下来我们逐步上正餐,在吃正餐之前,我还要引用那首诗词: 「横看成岭侧成峰,远近高低各不同」,远看看轮廓,近看看细节,不断切换思维或视角来学习 远看并发, 并发编程可以抽象成三个核心问题: 分工、同步/协作、互斥 阅读全文
posted @ 2019-09-03 08:40 日拱一兵 阅读(1091) 评论(4) 推荐(0) 编辑