引用:在a()前加synchronized肯定是不行不明白为什么不可以?

解决方案 »

  1.   

    www.it315.org
    张孝祥java再就业培训?线程同步视频,下载看看
      

  2.   

    引用:在a()前加synchronized肯定是不行//不明白为什么不可以,其实方法同步已经是比较细粒度的同步了。。
      

  3.   

    你的要求明显就是同步的要求嘛
    为什么加synchornized不行?
      

  4.   

    你也可以使用wait/notify机制来控制你的2个线程的通信..
      

  5.   

    1、根据你所描述的要求,在a()前加synchronized应该是行的,除非是你另有别的要求没说清楚。
    2、也可以用volatile修饰你的变量,即:
    public class A{
      private volatile int i;
      public void a(){
        ... //操作变量i
      }
    }
      

  6.   

    你的那两个线程是不是使用A类的两个不同对象,如果是的话,就不能单单在a()前加synchronized了,应该用static synchronized a(),对类加锁!
      

  7.   

    是啊,是A的两个不同对象,所以不能简单的加synchronized。我已经搞定了。我将要使用的那个公共变量加锁了,好像可以了。这样:
    synchronized(公共变量){
        关键代码...
    }
      

  8.   

    very good!
    对变量进行sock!