今天打了打代码研究了一下java的volatile关键字到底能不能保证线程安全,经过实践,volatile是不能保证线程安全的,它只是保证了数据的可见性,不会再缓存,每个线程都是从主存中读到的数据,而不是从缓存中读取的数据,附上代码如下,当synchronized去掉的时候,每个线程的结果是乱的,加上的时候结果才是正确的。
/**
*
* 类简要描述
*
* <p>
* 类详细描述
* </p>
*
* @author think
*
*/
public class VolatileThread implements Runnable {
private volatile int a = 0;
@Override
public void run() {
// TODO Auto-generated method stub
// synchronized (this) {
a = a + 1;
System.out.println(Thread.currentThread().getName() + ":----" + a);
try {
Thread.sleep(100);
a = a + 2;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + ":----" + a);
// }
}
}
/**
*
* 类简要描述
*
* <p>
* 类详细描述
* </p>
*
* @author think
*
*/
public class VolatileMain {
public static void main(String[] args) {
VolatileThread s = new VolatileThread();
Thread t1 = new Thread(s);
Thread t2 = new Thread(s);
Thread t3 = new Thread(s);
Thread t4 = new Thread(s);
t1.start();
t2.start();
t3.start();
t4.start();
/* 同步的结果
Thread-2:----1
Thread-2:----3
Thread-0:----4
Thread-0:----6
Thread-3:----7
Thread-3:----9
Thread-1:----10
Thread-1:----12*/
/*
去掉同步的结果
Thread-0:----1
Thread-1:----2
Thread-2:----3
Thread-3:----4
Thread-0:----8
Thread-3:----10
Thread-1:----10
Thread-2:----12*/
}
}
以上这篇java中volatile不能保证线程安全(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# java中volatile不能保证线程安全
# Java多线程之volatile关键字及内存屏障实例解析
# Java线程之线程同步synchronized和volatile详解
# Java多线程并发编程 Volatile关键字
# 深入探讨Java多线程中的volatile变量
# 学习Java多线程之volatile域
# 详解Java线程编程中的volatile关键字的作用
# java多线程中的volatile和synchronized用法分析
# java多线程编程之慎重使用volatile关键字
# java多线程volatile内存语义解析
# 是从
# 给大家
# 才是
# 打了
# 而不
# 希望能
# 这篇
# 会再
# 小编
# 读到
# 大家多多
# 见性
# 结果是
# gt
# author
# xhtml
# lt
# brush
# Runnable
# private
相关文章:
大学网站设计制作软件有哪些,如何将网站制作成自己app?
网站制作壁纸教程视频,电脑壁纸网站?
利用JavaScript实现拖拽改变元素大小
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
PHP 500报错的快速解决方法
如何配置IIS站点权限与局域网访问?
如何自定义建站之星网站的导航菜单样式?
网站制作新手教程,新手建设一个网站需要注意些什么?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
网站制作费用多少钱,一个网站的运营,需要哪些费用?
建站之星安装后如何自定义网站颜色与字体?
如何用VPS主机快速搭建个人网站?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
如何快速搭建高效可靠的建站解决方案?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
制作网站的公司有哪些,做一个公司网站要多少钱?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
制作公司内部网站有哪些,内网如何建网站?
如何在IIS中新建站点并配置端口与物理路径?
如何自定义建站之星模板颜色并下载新样式?
建站之星如何助力企业快速打造五合一网站?
非常酷的网站设计制作软件,酷培ai教育官方网站?
如何通过虚拟机搭建网站?详细步骤解析
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
如何快速登录WAP自助建站平台?
如何基于云服务器快速搭建个人网站?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
网站图片在线制作软件,怎么在图片上做链接?
如何选择香港主机高效搭建外贸独立站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
网站代码制作软件有哪些,如何生成自己网站的代码?
中山网站推广排名,中山信息港登录入口?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
教学网站制作软件,学习*后期制作的网站有哪些?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
建站主机CVM配置优化、SEO策略与性能提升指南
如何登录建站主机?访问步骤全解析
高防服务器如何保障网站安全无虞?
如何选择靠谱的建站公司加盟品牌?
建站主机如何选?高性价比方案全解析
南京网站制作费用,南京远驱官方网站?
用v-html解决Vue.js渲染中html标签不被解析的问题
如何通过商城自助建站源码实现零基础高效建站?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
存储型VPS适合搭建中小型网站吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。