原子操作在java环境下很难做到这个jvm总是会把时间片分给别人或许你可以换个想法你是不是想对某个数据采取独占操作那么你最好在这个类的操作方法采取同步不大好理解,自己想想吧

解决方案 »

  1.   

    first ^_^好像没有吧 ^_^
      

  2.   

    接分 
    用synchronized因该已经何以了   不行的话做个单例类public class  Asd{
    Asd asd = new Asd();
    private asd() {
    }pubic Asd getInstance() {
    return asd;
    }
    public static synchronized int a(){
       1...
       2...
       3...
       4...
    }
    }单个对象加上synchronized  应该万无一失
      

  3.   

    晕~~~ second and third -_-
    独占操作被打断也无所谓吧?
    因为 synchronized 在逻辑上保证了该函数的原子性操作啊
      

  4.   

    //没想出“保证”的方法,只想出判断的方法。
    1.把1,2,3,4写成一个方法,最后一行加上一个标志变量。
    2.在其他地方调用这个方法后判断标志变量。
    synchronized int a(boolean isDone){
      isDone = false ;
      1...
      2...
      3...
      4...
      isDone = true ;
    }{
      ...
      boolean symbol ;
      A = a(symbol);
      if(symbol)
      {
        //说明都执行了;
      }else{
        //说明没都执行;
      }
      ...
    }
      

  5.   

    不需要的
    方法已经加上了synchronized标记,所以就算被打断了,其他线程也不可能来调用这个方法的
    凡是调用这个方法的线程都会进入阻塞状态,直到调用线程完成其对方法的调用