比如有2个用户 A和B:
A 在更新 一条记录,B也来更新这条记录,怎么才能保证不冲突呢?
就是A更新的记录不会被B修改。今天去毕博面试,跟那个技术聊了好久,好多基础和设计模式的问题,hr也说技术没问题,后来有1个估计是更高一层的来面我,
问我过了四级没有,我说没,但是我的口语和听读写都没有问题,就这样我被pass了,感觉好郁闷啊!

解决方案 »

  1.   

    加在更新的方法前加synchronized关键字,保证同一时间只能有一个线程访问void synchronized updateRecord(){}
      

  2.   

    synchronized
    同步问题
    祝你下次好运
      

  3.   

    如果系统没有做负载均衡使用synchronized控制是比较简单 
    要是你做了负载均衡把系统部署在N台机器上时,这样就没法控制了,这样你就只能有两种方式实现了第一:使用数据库的行级锁来控制这条数据
    第二:如果数据库没行级锁这功能就只能多建一张表出来记录要锁的操作方法了,每次调用方法的时候就查询更新这方法有没有被锁住,这样比较麻烦了,但是为了负载均衡,没办法!
      

  4.   

    比如有2个用户 A和B:
    A 在更新 一条记录,B也来更新这条记录,怎么才能保证不冲突呢?
    就是A更新的记录不会被B修改。 
    ------------------------------------------------
    解决办法:A在取得要更新记录时获取这条记录的更新时间,当A要更新这条数据的时候,在和数据库的更新时间比较一下,判断一下更新时间是不是等于自己从数据库获取的更新时间,如果等于,就是这条数据没有被B更新过,如果不等于,就表示被人更新过了