当前位置: 首页 > news >正文

关键词没有排名的网站怎么做网站织梦程序改成wordpress

关键词没有排名的网站怎么做,网站织梦程序改成wordpress,anylink wordpress,小程序哪家好实现全局自增id最简单有效的方式是什么#xff1f; java.util.concurrent.atomic 包定义了一些常见类型的原子变量。这些原子变量为我们提供了一种操作单一变量无锁( lock-free )的线程安全( thread-safe )方式。实际上该包下面的类为我们提供了类似 volatile 变量的特性…实现全局自增id最简单有效的方式是什么 java.util.concurrent.atomic 包定义了一些常见类型的原子变量。这些原子变量为我们提供了一种操作单一变量无锁( lock-free )的线程安全( thread-safe )方式。实际上该包下面的类为我们提供了类似 volatile 变量的特性同时还提供了诸如 boolean compareAndSet(expectedValue, updateValue) 的功能。不使用锁实现线程安全听起来似乎很不可思议这其实是通过CPU的compare and swap指令实现的由于硬件指令支持当然不需要加锁了。先不去讨论这些细节我们来看一下原子变量的用法。一个典型的用法是可以使用原子变量轻松实现全局自增id就像下面这样// 线程安全的序列id生成器class Sequencer {private final AtomicLong sequenceNumber new AtomicLong(0);publiclongnext() {return sequenceNumber.getAndIncrement();}}上述代码利用AtomicLong创建了一个Sequencer类不断调用该类的next()方法就可以得到线程安全的自增id用起来非常简单直观。下面我们给出每种原子变量类型的用法说明。AtomicInteger and AtomicLongAtomicInteger 和 AtomicLong 分别代表原子类型的整型和长整型这两个类提供十分相似的功能仅仅是位宽不同。如上例所示原子整型可用于多线程下全局自增id除此之外还提供了原子 比较-赋值 等操作诸如 compareAndSet(expect, update) decrementAndGet() getAndDecrement() getAndSet(newValue) 等等更全面的接口描述可参考JDK文档。需要提醒的是这些函数都是通过原子CPU指令实现执行效率较高。原子整型看似跟普通整型( Integer, Long )类型相似但不能使用原子整型替代普通整型因为原子整型是可变的而普通整型不可变。由于这个原因使用原子整型作为Map的key并不是个好主意。你可能会想当然的以为应该有 AtomicFloat 和 AtomicDouble 遗憾的是类库里并没有这两个类型 AtomicByte 和 AtomicShort 也没有。如果需要替代方案是使用 AtomicInteger 和 AtomicLong 。可通过 Float.floatToRawIntBits(float) 和 Float.intBitsToFloat(int) 将Float存储到 AtomicInteger 中类似的Double类型也可以存储到 AtomicLong 中。AtomicReferenceAtomicReference 用于存放一个可以原子更新的对象引用。该类包含 get() , set() , compareAndSet() , getAndSet() 等原子方法来获取和更新其代表的对象引用。AtomicXXXArrayatomic包下面有三种原子数组 AtomicIntegerArray , AtomicLongArra , AtomicReferenceArray 分别代表整型、长整型和引用类型的原子数组。原子数组使得我们可以线程安全的方式去修改和访问数组里的单个元素。简单示例如下// 原子数组示例AtomicLongArray longArray new AtomicLongArray(10);// 创建长度为10的原子数组longArray.set(1, 100);long v longArray.getAndIncrement(1);AtomicReferenceArray referenceArray new AtomicReferenceArray(16);referenceArray.set(3, love);referenceArray.compareAndSet(3, love, you);简单来说原子数组就是一种支持线程安全的数组仍然具有数组“定长”的性质如果访问元素超过了数组的长度将会抛出 IndexOutOfBoundsException 。你可能已经想到了可以使用线程安全的容器来避免容量不足我们会在后续章节介绍。什么是线程安全线程安全是指多线程访问是时无论线程的调度策略是什么程序能够正确的执行。导致线程不安全的一个原因是状态不一致如果线程A修改了某个共享变量(比如给id)而线程B没有及时知道就会导致B在错误的状态上执行结果的正确性也就无法保证。原子变量为我们提供了一种保证单个状态一致的简单方式一个线程修改了原子变量另外的线程立即就能看到这比通过锁实现的方式效率要高如果要同时保证多个变量状态一致就只能使用锁了。欢迎加入学习交流群569772982大家一起学习交流。
http://www.zqtcl.cn/news/796900/

相关文章:

  • 网站开发飞沐东莞人才市场档案服务中心
  • 北京中小企业网站建设智慧团建官网登录口手机版
  • wordpress插 件seo服务是什么
  • 推荐几个安全没封的网站湖南长大建设集团股份有限公司网站
  • 免费淘宝客网站模板下载怎么申请注册公司
  • 网站动画用什么做wordpress 主题 下载
  • 制作网站的app推动高质量发展的必要性
  • 网站建设培训个人企业的官网
  • 物流公司做网站佛山市城乡和住房建设局网站
  • 建设银行六安市分行网站云梦网络建站
  • 寿光专业做网站的公司有哪些网页制作基础教程黄洪杰
  • discuz可以做门户网站么江西省网站备案
  • 天眼查在线查询系统seo平台优化服务
  • 建设部网站 注册违规北京梵客装饰
  • 大连制作网站报价网站网站怎么做代理
  • php做网站如何架构品牌vi设计欣赏
  • 网站外链建设与文章发布规范网址例子
  • 外贸网站空间选择商业计划书
  • 手机作图软件app专业做邯郸网站优化
  • 济南网站定制制作wordpress theid
  • 企业网站建设能解决什么问题设计房子需要多少钱
  • 专业网站开发制作石家庄信息门户网站定制
  • 藤虎网络广州网站建设网站域名实名认证官网
  • 佛山专业网站建设公司推荐it行业做网站一个月多少钱
  • 三网合一网站怎么做苏醒主题做的网站
  • wordpress站内统计插件wordpress模板 单栏
  • 龙岩网站定制网站开发 技术路线
  • 广州制作网站开发网站标题怎么设置
  • 海南旅游网站开发背景做网站兼容ie
  • 查找人网站 优帮云本地升级wordpress