java中原子计数器AtomicInteger_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java中原子计数器AtomicInteger

java中原子计数器AtomicInteger

 2014/12/11 21:32:45  daoqidelv  程序员俱乐部  我要评论(0)
  • 摘要:最近在做单位电子账户系统,为应对可能发生的恶意流量攻击,对暴露在外的注册和登录交易加入了流量控制,以提高系统的安全性。流量控制器的实现基于原子计数器AtomicInteger,这个类是线程安全的,在高并发下实现计数是相当有用的。其实现原子计数的秘诀在于使用Unsafe从内存级别保证了数据的一致性,他会在做加减操作之前先读取该计数器对应内存位置的值,并同原值进行比较,如果相同则update成新值,这类似于数据库的乐观锁机制。这也被称为:CAS(CompareAndSwap)
  • 标签:Java
最近在做单位电子账户系统,为应对可能发生的恶意流量攻击,对暴露在外的注册和登录交易加入了流量控制,以提高系统的安全性

流量控制器的实现基于原子计数器AtomicInteger,这个类是线程安全的,在高并发下实现计数是相当有用的。

其实现原子计数的秘诀在于使用Unsafe从内存级别保证了数据的一致性,他会在做加减操作之前先读取该计数器对应内存位置的值,并同原值进行比较,如果相同则update成新值,这类似于数据库的乐观锁机制。这也被称为:CAS(Compare And Swap)。

Unsafe 这个类是用于执行低级别、不安全操作的方法集合。尽管这个类和所有的方法都是公开的(public),但是这个类的使用仍然受限,你无法在自己的java程序中直接使用该类,因为只有授信的代码才能获得该类的实例。

参考:http://aswang.iteye.com/blog/1741871
     
发表评论
用户名: 匿名