全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java中volatile不能保证线程安全(实例讲解)

今天打了打代码研究了一下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小时内与您取得联系。