public class VolatileData {
//声明为volatile类型
private volatile int counter = 0;
/**
* 返回counter变量的值
* @return
*/
public int getCounter() {
return counter;
}
/**
* 自增counter变量的值
*/
public void increaseCounter() {
++counter;
}
}
public class VolatileThread extends Thread {
private final VolatileData volatileData;
public VolatileThread(VolatileData volatileData) {
this.volatileData = volatileData;
}
/**
* 调用VolatileData类中的两个方法,进行取值和自增操作
*/
@Override
public void run() {
int oldValue = volatileData.getCounter();
System.out.println("[Thread " + Thread.currentThread().getId() + "]: Old value = " + oldValue);
volatileData.increaseCounter();
int newValue = volatileData.getCounter();
System.out.println("[Thread " + Thread.currentThread().getId() + "]: New value = " + newValue);
}
}
public class VolatileMain {
private final static int TOTAL_THREADS = 2;
public static void main(String[] args) throws InterruptedException {
VolatileData volatileData = new VolatileData();
Thread[] threads = new Thread[TOTAL_THREADS];
for(int i = 0; i < TOTAL_THREADS; ++i)
threads[i] = new VolatileThread(volatileData);
//开始读取变量值的操作
for(int i = 0; i < TOTAL_THREADS; ++i)
threads[i].start();
//等待所有线程操作终止
for(int i = 0; i < TOTAL_THREADS; ++i)
threads[i].join();
}
}
[Thread 10]: Old value = 0 [Thread 11]: Old value = 0 [Thread 10]: New value = 1 [Thread 11]: New value = 2
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有