为啥我运行好多次,结果都是6

来源:3-2 synchronized实现可见性代码(上)

guawa

2018-06-07 10:53

为啥我运行好多次,结果都是6

写回答 关注

4回答

  • 一叶秋才
    2018-09-17 10:32:19
    已采纳

    这个Dome告诉你 编译时可能存在其它结果,导致数据不安全

    public static void main(String[] args) {
        SynchronizedDemo synchronizedDemo=new SynchronizedDemo();
    
           synchronizedDemo.new ReadWriteThread(true).start();
           synchronizedDemo.new ReadWriteThread(false).start();
       
    
    
    }
    public static void main(String[] args) {
        SynchronizedDemo synchronizedDemo=new SynchronizedDemo();
        synchronizedDemo.new ReadWriteThread(false).start();
           synchronizedDemo.new ReadWriteThread(true).start();
       
    
    
    }

    颠倒下模拟编译时可能出现的情况就行啦

  • qq_Morpheus丶_0
    2019-03-15 21:54:56

    https://img1.mukewang.com/5c8bae85000163c206720405.jpg

    会不一样的

  • 慕码人5302264
    2018-07-27 09:53:25

    我也是一直都是6


  • 韦煾
    2018-06-08 17:04:41

    你代码没有跟老师写的一样的吧,检查下代码吧

细说Java多线程之内存可见性

用两种方式实现内存可见性,代领大家深层次学习Java中的内存

55910 学习 · 74 问题

查看课程

相似问题