猿问

synchronized关键字的用法

  1. public class Sync implements Runnable{
       int b = 100;
       public synchronized void m1() throws Exception {
           b = 1000;
           Thread.sleep(3000);
           System.out.println("sync " + b);
       }
       public void m2() {
           System.out.println(b);
       }
       public void run() {
           try {
               m1();
           } catch (Exception e) {
               e.printStackTrace();
           }
       }

       public static void main(String[] args) throws InterruptedException {
           Sync s = new Sync();
           Thread t = new Thread(s);
           t.start();
           Thread.sleep(3000);
           s.m2();
       }
    }

这个程序为什么输出的是下面这个啊?m2方法输出的应该是100啊,把b赋值为1000的语句被synchronized锁定了,其他对象明明是不能访问的啊

1000

sync 1000


fenkapian
浏览 1158回答 1
1回答

道临

你打·的这是什么鬼,我等完全看不懂,麻烦把代码打全,如果嫌麻烦就照个照片发上来
随时随地看视频慕课网APP

相关分类

Java
我要回答