A的 get方法是被同步的,set方法也是被同步的,get set 方法之间没有什么同步的说法,
B继承了A,当然get,set方法也是synchronized的 如果你没有重载这个方法

解决方案 »

  1.   

    to moumouren(某某人) heihei有意思的名字
    “A的 get方法是被同步的,set方法也是被同步的,get set 方法之间没有什么同步的说法”就是说,这个 同步只是针对不同的对象同时进行get操作(或set操作)时是同步的,而同时进行get和set操作时就没有同步的概念了?那如果get和set操作是对同一个对象,比如对同一个队列的add和remove,如果同时进行会怎么样?还是应该对对象synchronized?
    不好意思,我是个傻丫头,还希望能讲的清楚点。多谢多谢!
      

  2.   

    你要清晰一个概念,synchronized的同步是针对“对象”。同一个对象的所有synchronized
    函数共用一个机锁,因此如果有一个class A 的对象a (A a =new A();),a的所有synchronized
    函数在某一时刻只能有一个在运行,同时锁定该对象,其他的synchronized函数都无法在被调用。不管是get与set,还是get与get...
      

  3.   

    哦,好像明白了。ajiao() ,请问,如果类A中的不是synchronized的方法,也就不受这个机锁的限制了,对不对?在使用时,也没有必要把所有的方法都synchronized,只要把可能引起冲突的方法锁住就行了,是不是?
    多谢大家,过一个小时给大家分啊:)