http://www.csdn.net/expert/topic/304/304040.shtm

解决方案 »

  1.   

    选择一个“唯一”的东西(object),然后用它来synchronized 你要
    锁住的那个method。用snchronized method可以更简洁,比如:如果这个method是一个instance method,并且可以确认这个
    method所在的instance是“唯一”的,则可以:
    snchronized myMethod(){...}如果这个method是一个static method,并且可以确认这个
    static method所在的Class object是“唯一”的,则可以:
    static snchronized myMethod(){...}
    Doug Lea写的书:(有些地方比高司令的书还清楚呢,哈哈哈哈哈)
    <<Concurrent Programming in Java Second Edition>>
    ISBN=0-201-31009-0他的网站:
    http://gee.cs.oswego.edu/dl/
      

  2.   

    尽量不要锁定整个方法,用snchronized锁定关键数据就行了。