Java 并发编程:volatile 关键字介绍与使用
public class VolatileExample {
// 使用 volatile 关键字确保可见性和禁止重排序优化
private volatile long counter = 0;
// 对共享变量进行原子增加操作
public void increment() {
counter++;
}
// 获取当前计数器的值
public long getCounter() {
return counter;
}
public static void main(String[] args) {
VolatileExample example = new VolatileExample();
// 启动多个线程进行增加操作
for (int i = 0; i < 10; i++) {
new Thread(new Runnable() {
@Override
public void run() {
for (int j = 0; j < 1000; j++) {
example.increment();
}
}
}).start();
}
// 等待所有线程执行完毕
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 打印最终的计数器值
System.out.println("最终计数器的值是: " + example.getCounter());
}
}
这段代码通过创建一个VolatileExample
类,其中包含一个用volatile
关键字修饰的counter
字段。在多线程环境下,通过调用increment()
方法对counter
进行自增操作。在主方法中,我们启动了多个线程来进行这个操作,并在所有线程执行完毕后打印出counter
的最终值。这个例子展示了volatile
关键字的用法,以及如何确保在并发环境下的可见性和有序性。
评论已关闭