AtomicBoolean
AtomicBoolean是Java.util.concurrent.atomic包下的原子变量,能够保证在高并发的情况下只有一个线程能够访问这个属性值
这个是boolean 值,实际的开发中也是偶尔使用到,不过自己使用AtomicBoolean 当做boolean 值来使用了
下面简单的说下自己的使用,把别人总结的方法来下来了,大家可参考下 。
AtomicBoolean 的方法大致如下 :
public boolean compareAndSet(boolean expect, boolean update) :如果当前值==
期望值,则将该值原子设置为给定的更新值。
public boolean get() :返回当前值。
public boolean getAndSet(boolean newValue): 将原子设置为给定值并返回上一个值。
public void lazySet(boolean newValue) :最终设定为给定值。
public void set(boolean newValue) : 无条件地设置为给定的 值。
public String toString() : 返回当前值的String
表示形式。
public boolean weakCompareAndSet(boolean expect, boolean update) :如果当前值==
期望值,则将该值原子设置为给定的更新值。
下面写一个基本的点击图片切换图片的功能 ,假如我们使用boolean 值来
定义一个boolean 值
private boolean flag = true;
实现功能:
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (flag) {
imageView.setImageResource(R.mipmap.ic_launcher);
flag = false;
} else {
imageView.setImageResource(R.mipmap.three);
flag = true;
}
}
});
这个就是使用boolean 值来实现点击图片切换图片
下面使用AtomicBoolean 来
定义一个boolean值
private AtomicBoolean isViewShow = new AtomicBoolean(true);
实现功能
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isViewShow.get()) {
imageView.setImageResource(R.mipmap.ic_launcher);
isViewShow.set(false);
} else {
imageView.setImageResource(R.mipmap.three);
isViewShow.set(true);
}
}
});
这里就简答的实现了点击图片切换图片功能了。