记一次 JDK 底层 TLS 锁竞争性能问题
herman 7个月前 (04-20) 812浏览
这个标题原本有些长,“Thread.State: BLOCKED (on object monitor) at java.security.Provider.getService(Provider.java:680)”。我嫌它不利于搜索,所以给它改...
herman 7个月前 (04-20) 812浏览
这个标题原本有些长,“Thread.State: BLOCKED (on object monitor) at java.security.Provider.getService(Provider.java:680)”。我嫌它不利于搜索,所以给它改...
herman 2年前 (2022-08-31) 3854浏览
背景 为什么从Java15开始要禁用偏向锁了? 在 JDK1.5 之前,面对 Java 并发问题, synchronized 是一招鲜的解决方案: 普通同步方法,锁上当前实例对象静态同步方法,锁上当前类 Class 对象同步块,锁...
herman 3年前 (2021-08-09) 3070浏览
本文首发于我的个人公众号“业余草”,由于公众号不利于搜索,这里同步到我的个人网站上。 昨天有一位网友对我的一篇文章进行了评论,留言说到:线程安全的 LinkedHashMap 怎么实现? 线程安全的 LinkedHashMap 我...
herman 3年前 (2021-06-10) 1940浏览
想不到,synchronized + @Transactional 造成的重大线程安全问题 昨天,微信群里一位小伙伴遇到了一个 synchronized + @Transactional 事务造成端午礼品分配不均的问题,最终导致数据不一致。今...
herman 5年前 (2020-03-19) 3678浏览
前两天,我闲着无事,在群里发了一个关于高并发的面试题,今天我来说一说这套面试题的第一小题的第一部分! 1、请描述synchrnoized和reentrantlock的底层实现及重入的底层原理 2、请描述锁的四种状态和升级过程 3、...
herman 5年前 (2020-01-11) 2811浏览
最近看到一篇很好的 volatile 可见性原理总结,分享给大家! volatile 是一种轻量且在有限的条件下线程安全技术,它保证修饰的变量的可见性和有序性,但非原子性。相对于 synchronize 高效,而常常跟 synchronize...
herman 6年前 (2018-11-23) 3273浏览
Hashtable 和 HashMap 是面试中必问的两个数据结构知识点。很多人拿他们做比较,今天我们就一起来谈谈 Hashtable! 在开始之前,我先来问一个问题,Hashtable 中的 T 为什么不是大写。我百度...
herman 6年前 (2018-11-22) 3654浏览
阅读前面的文章,我们知道 ReentrantLock 是一个高效的锁,它既能用作公平锁,又能用作非公平锁!但是有了 ReentrantLock 后,为什么还需要 ReentrantReadWriteLock 呢? 那就需要从排他锁和共享锁说...
herman 6年前 (2018-11-22) 3017浏览
写锁呢就不可避免的要说可重入锁与不可重入锁。不可重入锁也有人成为非可重入锁,都是一个意思,不同的叫法而已! 前面我有篇文章《synchronized 是可重入锁吗?为什么?》写过 synchronized,今天我们再来借助 syn...
herman 6年前 (2018-11-21) 3436浏览
最近一段时间,有人微信私信我说:“看我的文章,喜欢每天都进步的感觉!”把我高兴坏了!还有人经常打赏我,我在这里感谢他(她)们! 每收到一份打赏、赞美、评论、留言等都是满满的幸福。再次感谢大家的认可和支持! ...
herman 6年前 (2018-11-08) 5034浏览
你还在面试中回答 Vector 是线程安全的吗?我相信很多人在面试中都是这样回答的,它是线程安全的。关于 Vector 我们今天来重新认识它! 如果你说 Vector 是线程安全的,一定是基于它的方法 synchronized 关...
herman 6年前 (2018-11-04) 2524浏览
先说一下,我为什么要写这篇文章!因为有位网友给我发了一篇关于AtomicInteger的文章:https://blog.csdn.net/fanrenxiang/article/details/80623884,说看不懂。我看了这篇文章,我说看不...
herman 6年前 (2018-10-31) 8366浏览
程序就是模仿世界!比如队列就是模仿人们的排队场景,再比如工厂模式,代理模式等都是和现实生活息息相关的场景衍生而来。在前面还记得我们的 synchronized 锁吗?还记得 Object 的 wait 方法吗?它们分别有各自的池,及:锁...
herman 6年前 (2018-10-12) 9832浏览
最近有人私信我,说面试中问到了 synchronized,被批的一塌糊涂,挂了!Why?他说其中一个问题,问他 synchronized 是可重入锁吗?他说不是!为什么不是,他说 java 中有 ReentrantLock,R...
herman 6年前 (2018-09-17) 4789浏览 0评论
锁不管是在工作中还是生活中都到处存在。在编程的世界中,也是普遍的存在,用不好,会产生很多麻烦问题。 前两天有一个网友在群里问我 synchronized 锁的问题,当时没怎么细说,以后有时间了来写篇文章。本文主要是介绍借用数据库的悲观锁来实...