为什么从Java15开始要禁用偏向锁了?
herman 2年前 (2022-08-31) 3854浏览
背景 为什么从Java15开始要禁用偏向锁了? 在 JDK1.5 之前,面对 Java 并发问题, synchronized 是一招鲜的解决方案: 普通同步方法,锁上当前实例对象静态同步方法,锁上当前类 Class 对象同步块,锁...
herman 2年前 (2022-08-31) 3854浏览
背景 为什么从Java15开始要禁用偏向锁了? 在 JDK1.5 之前,面对 Java 并发问题, synchronized 是一招鲜的解决方案: 普通同步方法,锁上当前实例对象静态同步方法,锁上当前类 Class 对象同步块,锁...
herman 3年前 (2021-09-09) 3056浏览
大家好,我是业余草,这是我的第 447 篇原创! 你或许听说过,在 Java 中调用 System.currentTimeMillis() 会有一些性能开销,在某些场景下,System.nanoTime() 更具优势! 比如,测试方法的...
herman 4年前 (2020-07-26) 2791浏览
这个问题很多高级工程师可能都不会,因为平时很少用到。 但是在面试中就有可能经常会遇到这样的问题:在主线程中有两个子线程,如何能让着两个子线程能顺序的执行? 答案自然是用 join 来使得两个线程顺序执行。说到这里,我前面也有类似的文章,最近又...
herman 5年前 (2020-03-19) 3678浏览
前两天,我闲着无事,在群里发了一个关于高并发的面试题,今天我来说一说这套面试题的第一小题的第一部分! 1、请描述synchrnoized和reentrantlock的底层实现及重入的底层原理 2、请描述锁的四种状态和升级过程 3、...
herman 5年前 (2019-07-02) 3326浏览
我们都知道,ArrayList 天生就不是线程安全的,但是很多人也就是道听途说而已。并没有实际的进行测试,也并不清楚 ArrayList 为什么不是线程安全的! 这不,昨天还有人问我为什么?说面试官让他写一个 bug。答案其实很简单,今天我们...
herman 6年前 (2019-05-26) 2649浏览
最近一个同学发来消息说,公司里有一段代码使用的线程经常会发生一些莫名其妙的问题。让我帮忙看看,我仔细看了很多遍线程的相关代码。最后注意到了 InterruptException 异常,把想法和 demo 代码给他说了后,问题果真被解决了。 危...
herman 6年前 (2019-05-12) 5552浏览
这是一把好锁,真香! MySQL 全局锁,听到的人可能真没多少。一方面是一些人认为 DBA 才需要深入吧,另一方面多数人接触不到这么深的知识。还有一方面可能就真如大家所说的“没有时间学习”! 昨天那篇文章,我提到了一个数据迁移。我们来看...
herman 6年前 (2019-03-14) 2881浏览
很多人都想进 BAT,但是并不是每个人都能如愿。BAT 的面试非常的严格,今年春招,阿里的一道线程面试题,就淘汰了无数的人! 今天我对这道题,分别用了 3 种不同的方法实现了,供大家参考! 题目如下: 通过N个线程顺序循环打...
herman 6年前 (2019-03-04) 1863浏览
昨天,我面试了不少程序员,很多程序员和背书一样。于是后面,我就改变了一下面试技巧。给来的人,一人一台电脑,要求写出个死锁程序,并且使用 jstack 分析出现问题的代码。时间不能超过 1 个半小时。 问题一出,有两个程序员起身要走了,我问为...
herman 6年前 (2019-02-25) 9156浏览
最近,我们的电商项目中需要一个限流功能,我打算使用令牌桶实现。 然后,我就网上查了一些关于令牌桶算法的文章,用 Java 实现了一个。但是其中有一点问题,所以,我就想参考一下 guava 中 RateLimiter 的实现。但是发现 com...
herman 6年前 (2019-01-17) 3329浏览
最近一直在忙于救火,陆陆续续的有不少用户反馈我们的系统会出错,下单时间不是在远古就是在未来。而负责后台管理系统的员工也提出了质疑,这个订单下单时间是 19xx 年,还有这个订单创建时间是 2187 年,这些都是非正常的订单,是不是有人攻击我们?这...
herman 6年前 (2018-12-12) 2502浏览
最近我看了混沌大学里张首晟教授的演讲,张教授始终强调一个“大道至简”的至理名言。因为所有的科学发现,技术进步都是从简单的基础知识得来的。比如:勾股定理,欧几里得几何,万有引力,相对论等,都是基于自然界的自然事实得出的。 ...
herman 6年前 (2018-11-21) 4269浏览
阅读过上篇文章的网友,可能会发现上一篇文章中已经出现了一个自旋锁! 什么?怎么可能?你在上一篇文章中连一个自旋锁的字都没提,怎么可能有自旋锁(欺骗我农村来的是吧,一定是)? 我怎么可能会骗你呢?就算骗了你,也骗不了其他人,那么多读者,...
herman 6年前 (2018-11-04) 2524浏览
先说一下,我为什么要写这篇文章!因为有位网友给我发了一篇关于AtomicInteger的文章:https://blog.csdn.net/fanrenxiang/article/details/80623884,说看不懂。我看了这篇文章,我说看不...
herman 6年前 (2018-10-31) 4834浏览
我之前在公众号里发了两篇关于线程的文章,没想到很多网友都想看,有评论说想看 sleep 与 wait 区别的,于是便有了本文。 从单词的意思上来说,两个都有使线程暂停的意思,但是实现原理以及使用的效果完全不一样。 sleep 使让线程...