自己实现AtomicFloat的示例代码
2016-03-03 16:22
295 查看
import java.util.concurrent.atomic.AtomicInteger; import static java.lang.Float.*; class AtomicFloat extends Number { private AtomicInteger bits; public AtomicFloat() { this(0f); } public AtomicFloat(float initialValue) { bits = new AtomicInteger(floatToIntBits(initialValue)); } public final boolean compareAndSet(float expect, float update) { return bits.compareAndSet(floatToIntBits(expect), floatToIntBits(update)); } public final void set(float newValue) { bits.set(floatToIntBits(newValue)); } public final float get() { return intBitsToFloat(bits.get()); } public float floatValue() { return get(); } public final float getAndSet(float newValue) { return intBitsToFloat(bits.getAndSet(floatToIntBits(newValue))); } public final boolean weakCompareAndSet(float expect, float update) { return bits.weakCompareAndSet(floatToIntBits(expect), floatToIntBits(update)); } public double doubleValue() { return (double) floatValue(); } public int intValue() { return (int) get(); } public long longValue() { return (long) get(); } }
相关文章推荐
- java 多线程 CountDownLatch用法
- AVFoundation编程指南2-用AVPlayer播放视频
- php设计模式 原型模式
- java中的反射总结
- Python学习基础(9):函数式编程
- 使用Spring+观察者模式处理绩效评定流程状态变更及邮件发送
- Mongoose学习参考文档——基础篇
- Java中的JavaCore/HeapDump文件及其分析方法
- C++ 128位 AES加密算法
- php连接mysql类PDO从php5才开始有
- Java中的super和this
- C# 读取Log4net 日志文件
- java移位运算
- 解决angular 与django的冲突
- ASP.net mvc Code First 更新数据库
- Python 字符串、列表、字典 操作方法大全 & 正则re
- bzoj 3198 [Sdoi2013]spring(容斥原理+Hash)
- 2:编写虚幻引擎中的UC和C++代码
- python调用matlab的m自定义函数
- VBA教程初级(四):声明数组