package zhu.test;
/**
* 需求:
* 使同一份数据分别进行 加1 减1 交替出现 10次
* 方法二
* 要求: 在jdk5之后出现线程安全类 比如AtomicInteger,...AtomicIntegerFieldUpdater ,使用此类保证资源的互斥性
*/
import java.util.concurrent.atomic.*;
class Container22 {
public volatile int no;
}
public class fUpdaterUsage2 {
public static void main (String [] args) {
final AtomicIntegerFieldUpdater<Container22> updater2 = AtomicIntegerFieldUpdater.newUpdater(Container22.class, "no");
final Container22 c = new Container22(); //同一份c里面的int数据
new Thread(
new Runnable() {
@Override
public void run() {
for(int i=0;i<10;i++){
System.out.println(updater2.getAndDecrement(c)+",Addloop:"+i);
System.out.println(updater2.getAndIncrement(c)+",Decloop:"+i);
}
}
}
).start();
}
}
/**
* 需求:
* 使同一份数据分别进行 加1 减1 交替出现 10次
* 方法二
* 要求: 在jdk5之后出现线程安全类 比如AtomicInteger,...AtomicIntegerFieldUpdater ,使用此类保证资源的互斥性
*/
import java.util.concurrent.atomic.*;
class Container22 {
public volatile int no;
}
public class fUpdaterUsage2 {
public static void main (String [] args) {
final AtomicIntegerFieldUpdater<Container22> updater2 = AtomicIntegerFieldUpdater.newUpdater(Container22.class, "no");
final Container22 c = new Container22(); //同一份c里面的int数据
new Thread(
new Runnable() {
@Override
public void run() {
for(int i=0;i<10;i++){
System.out.println(updater2.getAndDecrement(c)+",Addloop:"+i);
System.out.println(updater2.getAndIncrement(c)+",Decloop:"+i);
}
}
}
).start();
}
}