java
秀川001
说那么多有卵用
展开
-
只用两个线程,使HashMap在10分钟内出现死循环
测试HashMap死循环,有个网友要求两个线程,10分钟内测试出HashMap死循环,下面是代码。通过CountDownLatch来控制两个线程同时开启,增加形成死循环的概率。自己定义了MyObj作为key,重写hashCode方法,让所有的节点都落在HashMap同一个桶,形成单链表,重写equals方法,通过值来判断来个key是否相同public class HashMapTest ...原创 2019-04-21 22:23:27 · 106 阅读 · 0 评论 -
伪共享,并发编程无声的性能杀手
伪共享(false sharing),并发编程无声的性能杀手在并发编程过程中,我们大部分的焦点都放在如何控制共享变量的访问控制上(代码层面),但是很少人会关注系统硬件及 JVM 底层相关的影响因素。前段时间学习了一个牛X的高性能异步处理框架 Disruptor,它被誉为“最快的消息框架”,其 LMAX 架构能够在一个线程里每秒处理 6百万 订单!在讲到 Disruptor 为什么这么快时,接触...转载 2019-04-29 11:14:08 · 162 阅读 · 0 评论 -
关于我的公众号Alitaba119的价值
我是Kahuna,现任职阿里巴巴,公众号Alitaba119旨在为关注的用户带来成长,成长分为以下几方面:1. 源码深度理解:深度理解JDK源码,解释源码里面每一行代码的用意。先打基础,把并发包,多线程,nio等理解透,然后再深度理解spring,mybatis,netty等框架(高并发服务必备),这块都是原创文章。2. 思考力的成长:去大公司除了福利好,996,更关键的是思维模式的升级以...原创 2019-05-25 14:29:26 · 179 阅读 · 0 评论 -
你以为用synchronized就一定线程安全吗?
用synchronized对方法进行同步,还真不一定线程安全,来看个简单的例子上面的代码运行出来的结果:看到没,并不是2000000,那么为什么f1和f3方法都用了synchronized关键字,然而并没有达到我们需要的结果呢?这需要从synchronized的原理开始讲起。synchronized关键字有下面三种用法:修饰实例方法:对当前实例加锁,进入方法需要获...原创 2019-05-18 10:31:53 · 1574 阅读 · 0 评论