91对volatile的理解--从视频教程JMM以91及单例模式剖析

本文详细介绍了Java中的volatile关键字,它作为轻量级的同步机制,确保了变量的可见性但不保证原子性。通过代码示例展示了volatile在可见性方面的效果,以及在多线程环境下无法解决的原子性问题。同时,提出了AtomicInteger作为解决原子性问题的方案。
摘要由CSDN通过智能技术生成

1.volitale是Java虚拟机供应的一种轻量级的同步机制

三大特性1.1保证可见性 香I蕉1.2不保证原子性 1.3禁止指令重排

首要保证可见性

1.1 可见性

概念:当多个线程访问同一个变量时,一个线程批改了这个变量的值,其他线程可以当即看到批改的值

 

package com.yuxue.juc.volatileTest; /** * 1验证volatile的可见性 * 1.1 假定int num = 0,number变量没有增加volatile关键字修饰 * 1.2 91对volatile的理解--从视频教程JMM以91及单例模式剖析增加了volatile,可以处理可见性 */ class VolatileDemo1 { //自定义的类 public static class MyTest{ //类的内部成员变量num public int num = 0; //numTo60 方法,让num值为60 public void numTo60(){ num = 60; } } public static void main(String[] args) { MyTest myTest = new MyTest(); //第一个线程 new Thread(() -> { try { System.out.println(Thread.currentThread().getName() + "\t come in"); Thread.sleep(3000); myTest.numTo60(); System.out.println(Thread.currentThread().getName() + "\t update value:" + myTest.num); } catch (Interrupted

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值