您的位置:首页 > 编程语言

自己实现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();          }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: