- 博客(7)
- 收藏
- 关注
原创 无锁的线程安全整数-AtomicInteger
JDK并发包中有一个atomic包,里面实现了一些直接使用CAS操作的线程安全的类型。其中,最常用的一个类,应该就是AtomicInteger。你可以把它看做是一个整数。他与Integer不同的是,它是可变的,线程安全的。对其的任何操作都是CAS指令执行的。 // 取得当前值 public final int get() { return value;...
2018-07-26 15:18:00 789
翻译 JVM对锁的优化
作为一款公用的平台,JDK肯定也对并发程序的性能绞尽脑汁,内部也想尽一切办法来提高并发时候的吞吐量。下面介绍几种JDK内部的锁优化策略一.锁偏向锁偏向的核心思想就是:如果一个线程获得了锁,那么锁就进入偏向模式,当该线程再次请求锁时,无需做同步操作,这样就节省了大量有关锁申请的操作,从而提高了系统的性能。因此,在线程数不多的情况下,这种锁偏向有比较好的优化效果,但是在大量高并发的情况下,这种...
2018-07-25 14:36:48 295
原创 锁的优化
在高并发的环境下,锁是最常用的方法之一,激烈的锁竞争会导致系统出现性能方面的问题,这时就需要我们做一些锁的优化。一.减小锁的持有时间对于使用锁进行并发控制的应用程序而言,在锁竞争中,单个线程对锁持有时间与系统性能有直接的关系。如果线程持有时锁的时间很长那么相对的,锁的竞争也就越来越激烈。举个例子: 如果要求20个人填写自我介绍,但是只有一支笔,如果有一个人抢到了笔,但是这个人没有想好怎...
2018-07-25 11:55:35 169
原创 并发包下的重入锁(ReentrantLock)
重入锁可以完全替代synchronized关键字。在JDK5.0的早期版本中,重入锁的性能完全好于synchronized。但是JDK6.0对synchronized做了大量的优化,使得两者差距并不大了,但是 ReentrantLock 灵活性要远高于synchronized。1.为什么叫重入锁?答:从名称上看,翻译挺贴切的, re-entrant-lock 重-入-锁。之所以这么叫是因为...
2018-03-20 15:53:01 750
原创 linux下reids的安装与配置
目前在用ubuntu16.4 和 centos7 这两个版本的 linux系统,感觉linux系统本质差别不是很大,就拿centos举例来说redis的安装吧。一. 安装redis:redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了 memcached的不足,它支持存储的value类型相对更多,包括string、lis...
2018-03-20 15:51:30 239
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人