放到同一个类中,让aaa,bbb不能同时执行

解决方案 »

  1.   

    我想是在指向aaa或是bbb的时候先同时拿到表1和表2的锁  拿不到的则等待!
    这样能实现吗!!!
      

  2.   

    synchronized  关键字在方法声明上,代表着是对当前对象加锁,如果两个方法所在的对象不是同一个,则锁是不会发生作用的
    如果不想做成单例 可以这样public   int aaa() {
            synchronized(XXX.class){
                conn.setAutoCommit(false);
                修改表1数据
                executeUpdate()
                ..........
                修改表2数据
                executeUpdate()
                conn.commit();  
            }
        }
        public  int bbb() {
            synchronized(XXX.class){
                conn.setAutoCommit(false);
                //修改表2数据
                 executeUpdate()
                ..........
                //修改表1数据
                 executeUpdate()
                conn.commit();    
           }
       }