synchronized(Object o){}   这是同步一个代码块,这里的Object o 就是我们常说的对象锁。只有得到这个Object o 锁,才可以开始这块同步的代码。当如具体的你还要看书。
只有得到这个Object o 锁,才可以开始这块同步的代码。-------这时关键。

解决方案 »

  1.   

    那这个Object o锁的意思是不是说:
    碰到这个object的时候就锁住关于这个object的程序代码,
    不让别的进程去“碰”然后去执行它,
    等执行完,再去把它打开!??那么用synchronized修饰的方法的object是谁呢?
    是this吗?
      

  2.   

    1 同步一段代码,在这段代码执行的过程中都讲保持着这个对象锁。需要却没有得到这个对象锁的代码无法执行。那么用synchronized修饰的方法的object是谁呢?
    是this吗?-----------也可以理解为this,事实上,在同步方法时,我们不过多的考虑对象锁的问题,因为毕竟是要由对象句柄来调用方法。
      

  3.   

    yes, this我的理解是,以对象 o 代表临界资源,每个 o 就会有一个等待队列,
    synchronized ( o ) { ... }
    意思是:申请 o ,如果不行就进入 o 的等待队列;系统自动维护 o 的等待队列,在当前 o 被释放时,自动向等待队列发 notify() 消息synchronized function() {...}
    相当于
    function() { synchronized(this) {...} }