当前位置: 首页 > news >正文

如此并发性问题

本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2008/07/29/1255395.html   ,如需转载请自行联系原作者



 这几天忙着解决并发性问题,一直也没好的解决方案,查过的一些资料也基本上就是数据库加琐,可我遇到这种情况估计用数据库加琐是很难解决的,下面大概描述这种情况:

       A,B用户(都具有该问这个模块权限的情况下)进入同一个管理列表时,数据都是相同的(因为当时可能还没有被修改),当时A用户就发现某条记录某项还没填写完整点击进去修改,此时B恰好也同时进入了该页面,也有想修改的意思。A用户把其中某项数据填写完整后提交了。而B看到这条记录,其实A用户已经填写完整了,但是他还不知道(看到的还是原先的信息),以为这下记录可能还存在问题,所以他在该记录信息的备注项,填写了“该信息未填写完整”,然后也提交上去。这时这条记录的信息其实就被B用户修改了,而A刚刚把这个填写完整的信息,全被B用户填写的信息覆盖了。

AB用户看到列表如下:
 

这时他们发现货物编号为53453453453里面填写不完整,两人正好同时点击进入了修改页。如图:


A用户把目的港改动了,而B用户在备注填写了一些说明(可能是说目的港填写有错).

A修改完以后,B随后也做了修改,这时完整的信息其实是被B修改的信息,而A刚刚把目的港改写的信息还是被成被B修改后的原始信息了,就等于A的修改动作没做一样了。

       这种情况如果单纯用数据库,估计很难解决,曾经想过把这条记录在某用户点击编辑时琐定,然后通过会话ID的判写,加记录的ID,此时只能第一个点击编辑的用户,才有编辑权限,当触发Session_End,就结束锁定该记录。

       以上问题是我个人的一点想法,不知园子里的朋友如果处理此问题的,向大家讨教心得。

相关文章:

  • Ajax 跨域请求 Access-Control-Allow-Origin 问题
  • aix alog的使用说明
  • easy_install apscheduler 安装问题 : pip install apscheduler==2.1.2
  • phpcms V9 自定义添加 全局变量{DIY_PATH}方法
  • openssl中算法的组织方式
  • Goldengate can't extract data from compressed table
  • 开源Linux监控系统:Icinga
  • 组策略故障实际案例排错
  • RHEL5.4编译安装LAMP
  • 生产环境监控mysql服务状态
  • 了解Handler,Looper, MessageQueue,Message的工作流程
  • 对BSD的新路由查找算法的理解
  • 验证文件中记录总行数是否与数据库文件同名表记录总数是否一致
  • 编写一个Linux虚拟网卡来实现类NVI
  • Windows下powershell可执行python
  • SegmentFault for Android 3.0 发布
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • java8-模拟hadoop
  • Javascript Math对象和Date对象常用方法详解
  • Koa2 之文件上传下载
  • Linux快速复制或删除大量小文件
  • npx命令介绍
  • PHP 7 修改了什么呢 -- 2
  • php ci框架整合银盛支付
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • uva 10370 Above Average
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 不上全站https的网站你们就等着被恶心死吧
  • 关于for循环的简单归纳
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 力扣(LeetCode)357
  • 深入浏览器事件循环的本质
  • 使用 Docker 部署 Spring Boot项目
  • 数据科学 第 3 章 11 字符串处理
  • 《码出高效》学习笔记与书中错误记录
  • Java数据解析之JSON
  • ​决定德拉瓦州地区版图的关键历史事件
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #pragma once与条件编译
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (poj1.3.2)1791(构造法模拟)
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (四) Graphivz 颜色选择
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .NET CORE Aws S3 使用
  • .NET Core WebAPI中封装Swagger配置
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET Micro Framework初体验
  • .NET MVC第五章、模型绑定获取表单数据
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net6 webapi log4net完整配置使用流程
  • .netcore 获取appsettings