同步和异步是怎么回事?

解决方案 »

  1.   

    http://topic.csdn.net/u/20110112/09/f0afdfdb-03df-41b9-a97a-1d31a8b323aa.html
      

  2.   

    还是举例子吧int a = 1 //全局变量
    public synchronized void func(){
       a = a +1 ;
       System.out.println(a);
    }
    synchronized代表方法是同步的,没有synchronized代表是异步的
    假如有两个线程(A,B)访问这段代码
    一、同步情况:
       A先访问,只有A执行完方法fun()后,B才能访问,打印结果A是2,B是3
    二、异步情况:
       A先访问,A访问时B也能访问,有可能当A执行到a= a+1时,B也访问到a=a+1,这时a的值为3
      所以接下来A和B打印结果都是3