woodforest12 2017-06-20 06:18 采纳率: 0%
浏览 937

三个看似简单但不容易解决的设计问题

1.A操作把一条记录状态改为1,B操作把状态改为2,这个记录可能在数据库里,也可能在内存里,不重要,就是可能存在多种状态,如果A操作先执行,B操作后执行,状态该是2,但如果因为网络延迟等原因,B操作先执行完成,那数据就被覆盖成了1,不符合现实情况,我只能控制其执行顺序,不能控制执行完成顺序,如何解决。
2.在方法中,A对象改变了一组属性,B对象改变了一组属性,那现在如果出现异常或返回值错误,整体操作失败,那执行完操作的属性如何回滚,还是这种设计就不合理,那该怎么设计。
3.用户注册的常见问题,查询用户名时,用户名可用,可这时候两人同时注册就都发到数据库了,数据库再唯一性出错返回了,大家都是怎么处理的,怎么加锁。

大家谈谈经验啊 万分感谢!

  • 写回答

5条回答 默认 最新

  • x_mario 2017-06-20 06:24
    关注

    使用多线程啊,还有synchronized

    下面是有关锁机制的博客。你可以了解一下
    http://blog.csdn.net/yangzhijun_cau/article/details/6432216

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘