volatile实践,必须弄懂它!
发布日期:2021-05-10 10:11:39 浏览次数:18 分类:精选文章

本文共 4049 字,大约阅读时间需要 13 分钟。

���������������������������

������������������������������������������������������������������������������������������������������������������������������������������CPU������������������������������������������������������������������������������������������������������CPU���������������������������������������������������������������

���������������������������������CPU������������������������Cache������������������������������������������������������������������������������CPU���������������������������������CPU���������������������������������������������������������������������������������������������������������������������������������������������������������

Java���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������

volatile���������������������������������������������������������������������������������������������������������������������������������������volatile������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������volatile���������������������������������������������������������������������������������������������������������

public static volatile int t = 0;
public static void main(String[] args) throws InterruptedException {
for (int i=0;i<100;i++) {
for (int j=0;j<100;j++) {
new Thread(new Runnable() {
@Override
public void run() {
t = t + 1;
}
}).start();
}
// ������t������
System.out.println(t);
Thread.sleep(1000);
t = 0;
}
}

������������������������������������������������������������������������������������������t���������������������������������������������������������������������������������������������

���������������������������������������������������������������������atomicity���������������������������������������������������������������������������������������������������������������synchronized������������Lock������������Java.util.concurrent������������������������AtomicInteger������

������������������synchronized������Lock���������������������������������������������������������������������������������������AtomicInteger���������������������������������������������������������������������������������������������������������������������������������������

������������������������������AtomicInteger������������������������

public static AtomicInteger t = new AtomicInteger(0);
public static void main(String[] args) throws InterruptedException {
for (int i=0;i<100;i++) {
for (int j=0;j<100;j++) {
new Thread(new Runnable() {
@Override
public void run() {
int x = t.incrementAndGet();
System.out.println("t after " + x);
}
}).start();
}
// ������t������
Thread.sleep(2000);
System.out.println(t);
t = new AtomicInteger(0);
}
}

���������������������������������������������������2000���������������������t���������������������������������������������������������t���������������t���������������������������������������������

���������������volatile������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������

上一篇:【MYSQL】日期转换与查询,昨天,今天,过去第n天,过去n天的数据
下一篇:Android / IOS 推送的java服务端这几种设计你知道吗?

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月15日 01时16分38秒