解决方案 »

  1.   

    System.out.println有可能在缓存中,由OS和JVM决定是否输出,而System.err.println它将每一次操作的结果都输出来,这样就很好理解区别了吧。对于我们而言在调试程序的时候尽量使用err来输出,这样可以很清晰的定位到任何一个步骤,而out输出的位置顺序很可能和你期望的不一样。
      

  2.   

    标准输出和标准出错的一个区别是,标准输出往往是带缓存的,而标准出错没有缓存(默认设置,可以改)。所以如果你用标准出错打印出来的东西可以马上显示在屏幕,而标准输出打印出来的东西可能要再积累几个字符才能一起打印出来。如果你在应用中混用标准输出和标准出错就可能看到这个问题。因此,System.err打出来的信息常常会跑到System.out信息的前面去
      

  3.   

    1L说得对,System.out.println有缓存,System.err.println立即输出
      

  4.   

    A获取锁
    AAAA in go
    A释放锁
    A获取锁
    AAAA off go.
    A释放锁
    O获取锁
    OOOOO in random.
    O释放锁
    O获取锁
    OOOOO off random
    O释放锁
    A获取锁
    AAAA in random.
    A释放锁
    O获取锁
    OOOOO in go
    O释放锁
    O获取锁
    OOOOO off go.
    O释放锁
    A获取锁
    AAAA off random
    A释放锁
      

  5.   

    Thread的构造方法Thread(Runnable target),Thread的run()方法操作如下:
    @Override
    public void run(){
    if(target != null){
    target.run();
    }
    }
    传的同一个r,是锁定的同一对象.
      

  6.   


    谢谢。但是我是创建了一个runnable,2个线程。不是2个对象。
      

  7.   

    非常感谢。
    有一句没明白:
    “AAAA in random.
    A释放锁
    O获取锁
    OOOOO in go”
    A还在random中,没有完成synchronized它不可能释放锁,只会sleep下,O也不能得到锁啊。
      

  8.   


    感谢,也就是说如果全部都是err输出的话,就绝对不会出现
    AAAA in random.
    OOOOO in go
    OOOOO off go.
    AAAA off random
    的结果?
      

  9.   


    感谢,也就是说如果全部都是err输出的话,就绝对不会出现
    AAAA in random.
    OOOOO in go
    OOOOO off go.
    AAAA off random
    的结果?
    对,结果只有三种可能:
    1:
    AAAA in go
    AAAA off go.
    OOOOO in go
    OOOOO off go.
    OOOOO in random.
    OOOOO off random
    AAAA in random.
    AAAA off random
    2:
    AAAA in go
    AAAA off go.
    AAAA in random.
    AAAA off random
    OOOOO in go
    OOOOO off go.
    OOOOO in random.
    OOOOO off random
    3:
    AAAA in go
    AAAA off go.
    OOOOO in go
    OOOOO off go
    AAAA in random.
    AAAA off random
    OOOOO in random.
    OOOOO off random
      

  10.   


    感谢,也就是说如果全部都是err输出的话,就绝对不会出现
    AAAA in random.
    OOOOO in go
    OOOOO off go.
    AAAA off random
    的结果?
    对,结果只有三种可能:
    1:
    AAAA in go
    AAAA off go.
    OOOOO in go
    OOOOO off go.
    OOOOO in random.
    OOOOO off random
    AAAA in random.
    AAAA off random
    2:
    AAAA in go
    AAAA off go.
    AAAA in random.
    AAAA off random
    OOOOO in go
    OOOOO off go.
    OOOOO in random.
    OOOOO off random
    3:
    AAAA in go
    AAAA off go.
    OOOOO in go
    OOOOO off go
    AAAA in random.
    AAAA off random
    OOOOO in random.
    OOOOO off random非常感谢!