php里如果二个人同时操一个数据库里表的字段,怎么避免

我做是一个抢任务的网站,如果1000个人去抢同一个任务,那就会有二个同时抢到,那这个任务到底给吧啊,... 我做是一个抢任务的网站,如果1000个人去抢同一个任务,那就会有二个同时抢到,那这个任务到底给吧啊, 展开
 我来答
raycar0524
2014-11-19 · TA获得超过4683个赞
知道小有建树答主
回答量:812
采纳率:0%
帮助的人:637万
展开全部
首先,你要知道,访问网站肯定存在先后,两个人同时访问网站,哪怕只有1ms的时间差也会被识别出先后的顺序。知道这个之后,对于避免数据库被多人修改就很简单了,有多种实现方法,一种是借鉴信号量的应用方法,在程序里来控制,谁抢到谁就拥有信号量,就可以操作数据库;另一种是使用数据库ACID特性以及lock功能(各种现代数据库都支持事务处理模式并拥有lock功能,具体查你用的数据库的文档教程),先访问的要在程序里对数据库加lock,防止其他人修改。
更多追问追答
追问
不对啊,以前请做出一个软件出来,也是抢任务的,就一个任务被同时两个人都抢到,以前那个被两个抢到没有事,现在做的网页,必须给一个人,那就有可能没有时间差啊,
追答
你现在在抢到任务时就输出时间(以毫秒为单位),就知道不可能有同时了,就算人为上是同时,程序处理上也有先后,你试一下就知道了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式