在调用A中theMethod方法前判断该方法是否已被调用,用methodIsRun()
public class A{
   private boolean flag = false;
   public boolean methodIsRun(){ ruturn flag; }
   public theMethod{
        this.flag = true;
        //方法主体
        this.flag = flase;
   }
}  

解决方案 »

  1.   

    不行吧 改一下
    public class A{
       private static boolean flag = false;
       public boolean methodIsRun(){ ruturn flag; }
       public theMethod{
            if(flag = false)flag =true;
            else return;
            //方法主体
            this.flag = flase;
       }
    }  
      

  2.   

    既然是同步当然指的是线程间的同步了。哪位高手告诉我一下我在A类中定义了一个
    private final static String flag = "0";
    然后在方法中使用
    synchronized(flag){
    }
    这种方法同步能不能做到该方法在该类的多个实例中同一时间内只有一个在运行?
      

  3.   

    最简单快捷的同步的方法:
    public class A{
    ....
    synchronized public void theMethod()//加关键字synchronized
    {
    .....
    }
    ....
    }
    系统会自动的给你同步,也就是同一时间只有一个对象能使用这个方法;
      

  4.   

    楼上这位兄弟的方法好像只适用于同一个类对象的方法的同步,但是并不妨碍A类的两个实例a,b同时运行该类定义的synchronized public void theMethod()
      

  5.   

    synchronized public void theMethod(){}
    public void run(){
      (synchronized)theMethod();}
    应用thread
      

  6.   

    一般的做法是:
    private final static Object methodLock = new Object();........
    public void theMethod() {
    synchronized(methodLock ){ 。
    }
    }