volatile可见性案例-黑马
2024-09-29 05:57:26
volatile可见性案例-黑马
package com.mozq.demo.demo;
class Task implements Runnable{
//public boolean flag = false;//存在可见性问题,主线程无法监视到线程执行成功。
public volatile boolean flag = false;
@Override
public void run() {
if(!flag){
System.out.println("执行任务");
}
flag = true;
System.out.println("任务执行完毕");
}
}
public class HeiMaVolatileTest {
public static void main(String[] args) {
Task task = new Task();
new Thread(task).start();
while (true){
if(task.flag){
System.out.println("=success=");
}
}
}
}
运行结果
# 主线程获取的flag始终是false,不会打印success。
Connected to the target VM, address: '127.0.0.1:21030', transport: 'socket'
执行任务
任务执行完毕
最新文章
- x01.os.22: ubuntu 常用设置
- EF总结
- WORDPRESS开发(一)自定义页面显示分类目录
- oracle热点表online rename
- iOS技术框架构和更新版本的技术特性
- 关于ARM内核与架构的解释
- bzoj 1566: [NOI2009]管道取珠
- 敏捷冲刺每日报告--day2
- Docker安装rabbitmq
- 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)
- 一道有意思的找规律题目 --- CodeForces - 964A
- nginx的白名单
- 汉字 Unicode 编码范围
- Git 创建操作
- jenkins邮件配置----jenkins笔记(三)
- PHP根据秒计算持续时长
- 支撑大规模公有云的Kubernetes改进与优化 (3)
- C++,一些常用的知识点
- Mybatis框架插件PageHelper的使用
- win7局域网内共享文件夹及安全设置