JUC包中的分而治之策略-为提高性能而生
一、前言
本次分享我们来共同探讨JUC包中一些有意思的类,包含AtomicLong & LongAdder,ThreadLocalRandom原理。
二、AtomicLong & LongAdder
2.1 AtomicLong 类
AtomicLong是JUC包提供的原子性操作类,其内部通过CAS保证了对计数的原子性更新操作。
大家可以翻看源码发现内部是通过UnSafe(rt.jar)这个类的CAs操作来保证对内部的计数器变量 long value进行原子性更新的,比如JDK8中:
public final long incrementAndGet() {
return unsafe.getAndAddLong(this, valueOffset, 1L) + 1L;
}
其中unsafe

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
ThinkPHP < 5.0.24 远程代码执行高危漏洞 修复方案
漏洞描述由于ThinkPHP5.0框架对Request类的method处理存在缺陷,导致黑客构造特定的请求,可直接GetWebShell。 漏洞评级严重 影响版本ThinkPHP 5.0系列 < 5.0.24 安全版本ThinkPHP 5.0系列 5.0.24ThinkPHP 5.1系列 5.1.31 安全建议升级ThinkPHP至安全版本修复方法1.打开thinkphplibrarythinkRequest.php搜索 public function method($method = false) { if (true === $method) { // 获取原始请求类型 return $this->server('REQUEST_METHOD') ?: 'GET'; } elseif (!$this->method) { if (isset($_POST[Config::get('var_method')])) { $this->method = strtoupper($_POST[Config::get('var_method')]); $this->...
-
下一篇
ABAP文档生成工具
本文介绍的工具原理和JavaDoc类似,位于software component BBPCRM 1. 在ABAP类里新建一个名为CLASS_DOCU的私有方法。 然后把所有的注释写在这个方法源代码的前面。 2. 在每个方法前面,采用和JavaDoc语法一样的方式对ABAP方法书写注释,比如@param修饰输入参数,@return修饰返回参数等。 3. 所有方法的文档书写完毕之后,使用事务码CLASS_DOCUGEN生成文档。 4. 接下来在事务码SE24,SE80里就可以在class builder里查看这些生成的文档了。 本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。
相关文章
文章评论
共有0条评论来说两句吧...