Java™ 教程(原子变量)

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java™ 教程(原子变量)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

原子变量

java.util.concurrent.atomic包定义了支持单个变量的原子操作的类,所有类都有getset方法,类似于对volatile变量的读写操作,也就是说,set与在同一个变量上任何后续的get具有先发生关系,compareAndSet原子方法也具有这些内存一致性特性,适用于整数原子变量的简单原子算法也是如此。

要查看如何使用此包,让我们返回我们最初用于演示线程干扰的Counter类:

class Counter {     PRivate int c = 0;      public void increment() {         c++;     }      public void decrement() {         c--;     }      public int value() {         return c;     }  }

使Counter免受线程干扰的一种方法是使其方法同步,如在SynchronizedCounter中:

class SynchronizedCounter {     private int c = 0;      public synchronized void increment() {         c++;     }      public synchronized void decrement() {         c--;     }      public synchronized int value() {         return c;     }  }

对于这个简单的类,同步是可接受的解决方案,但是对于更复杂的类,我们可能希望避免不必要的同步对活性的影响,用AtomicInteger替换int字段允许我们在不使用同步的情况下止线程干扰,如在AtomicCounter中:

import java.util.concurrent.atomic.AtomicInteger;  class AtomicCounter {     private AtomicInteger c = new AtomicInteger(0);      public void increment() {         c.incrementAndGet();     }      public void decrement() {         c.decrementAndGet();     }      public int value() {         return c.get();     }  }

上一篇:执行器

下一篇:配置实用程序

脚本宝典总结

以上是脚本宝典为你收集整理的Java™ 教程(原子变量)全部内容,希望文章能够帮你解决Java™ 教程(原子变量)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。