volatile可见性原理最强总结
herman 5年前 (2020-01-11) 2811浏览
最近看到一篇很好的 volatile 可见性原理总结,分享给大家! volatile 是一种轻量且在有限的条件下线程安全技术,它保证修饰的变量的可见性和有序性,但非原子性。相对于 synchronize 高效,而常常跟 synchronize...
herman 5年前 (2020-01-11) 2811浏览
最近看到一篇很好的 volatile 可见性原理总结,分享给大家! volatile 是一种轻量且在有限的条件下线程安全技术,它保证修饰的变量的可见性和有序性,但非原子性。相对于 synchronize 高效,而常常跟 synchronize...
herman 6年前 (2019-05-21) 1976浏览
华为要崛起,阻碍了某些人的利益,因此与他们产生了矛盾。矛盾被所有人讨厌,但我们又不得不面对现实。 CPU、IO、内存等它们各自的速度并不相同,因此它们之间也会产生矛盾。CPU 跑的快,磁盘跑的慢,因此我们引入了内存这个中间桥梁来解决矛盾。 ...
herman 6年前 (2019-05-20) 3626浏览
任何一个项目或者语言都需要提供一些不同场景下的支持。支持的可选项多了,在面对不同的业务场景时,就需要调优。 所谓调优,就是调整到最佳的状态。常见的有 Java 调优,MySQL 调优,Go 调优,JVM 调优等。今天极客时间又上线了一门新课程...
herman 6年前 (2019-03-14) 2881浏览
很多人都想进 BAT,但是并不是每个人都能如愿。BAT 的面试非常的严格,今年春招,阿里的一道线程面试题,就淘汰了无数的人! 今天我对这道题,分别用了 3 种不同的方法实现了,供大家参考! 题目如下: 通过N个线程顺序循环打...
herman 6年前 (2019-03-08) 2104浏览
3、4 月份是面试的黄金季,最近不管是知乎还是微信里,都有不是人在问我要资料,也或者是让我下载一些面试资料。 所以,我还是分享一些简单的面试题吧,希望能够帮助到你们! 面试其实就是靠复习,复习的好,就容易找到工作! 那些...
herman 6年前 (2019-03-04) 1863浏览
昨天,我面试了不少程序员,很多程序员和背书一样。于是后面,我就改变了一下面试技巧。给来的人,一人一台电脑,要求写出个死锁程序,并且使用 jstack 分析出现问题的代码。时间不能超过 1 个半小时。 问题一出,有两个程序员起身要走了,我问为...
herman 6年前 (2019-02-14) 2868浏览
接上篇文章《Java 中 String 为什么设计成 final 类?为什么它有“不可变性”?》我们再来说说 Java 为什么要让 String 设计成不可变的? 任何事情都得有原因吧,Java 设计 String ...
herman 6年前 (2019-01-23) 5183浏览
群里经常有网友提问 CPU,内存相关的问题。还有一些索引问题,QPS 等问题。以至于我写了很多拜托系列的文章。 比如,这两篇《拜托别在问我 MySQL 性能优化了!》、《拜托,别再问我 QPS、TPS、PV、UV、GMV、IP、RPS 好吗...
herman 6年前 (2019-01-22) 2727浏览
前方的路都是坑,只有你踩过,你才知道,经验就是钱。别问公司里,同样敲的代码,为啥别人比你工资高,因为别人踩的坑比你多。 最近,我们生产服务器就出了一次故障。这个故障本来是一个小问题,但是迫于我们没有运维,就只能我们硬着头皮去自己研究摸索。最...
herman 6年前 (2019-01-17) 3329浏览
最近一直在忙于救火,陆陆续续的有不少用户反馈我们的系统会出错,下单时间不是在远古就是在未来。而负责后台管理系统的员工也提出了质疑,这个订单下单时间是 19xx 年,还有这个订单创建时间是 2187 年,这些都是非正常的订单,是不是有人攻击我们?这...
herman 6年前 (2018-12-12) 2502浏览
最近我看了混沌大学里张首晟教授的演讲,张教授始终强调一个“大道至简”的至理名言。因为所有的科学发现,技术进步都是从简单的基础知识得来的。比如:勾股定理,欧几里得几何,万有引力,相对论等,都是基于自然界的自然事实得出的。 ...
herman 6年前 (2018-11-20) 2481浏览
我在前面的文章《Java 线程安全的3大核心:原子性、可见性、有序性》中已经说到了什么是线程安全!根据这篇文章,我们对照着 HashMap 来说说它为什么不是线程安全的? 前面我也强调过多次,回答是不是线程安全的请从:原子性、可见性、有序性...
herman 6年前 (2018-11-14) 13063浏览
没有一样东西是可以随便挥霍的,亲情、爱情都不行。JVM 也不行! 程序也都是和现实世界规律一致的。Java 中存在多线程,支持同时执行多项任务。所以物理机上即使只有一个CPU,我们也可以同时运行多个程序。 JVM 中的线程也需要内存空...
herman 6年前 (2018-11-06) 3385浏览
有人将原子性、可见性、有序性归结为 java 多线程的3大核心。我认为欠佳,应该把它归为线程安全的知识点。本文我就给大家详细的说下,线程安全的3个核心知识点:原子性、可见性、有序性。 在开始之前我们先来看看什么是线程安全? 线程安全 ...
herman 6年前 (2018-10-31) 4834浏览
我之前在公众号里发了两篇关于线程的文章,没想到很多网友都想看,有评论说想看 sleep 与 wait 区别的,于是便有了本文。 从单词的意思上来说,两个都有使线程暂停的意思,但是实现原理以及使用的效果完全不一样。 sleep 使让线程...