多人同时请求一个地址,读写同一份文件时,怎么按顺序读写完毕?

发布于 2021-12-04 19:44:32 字数 101 浏览 966 评论 8

请问 需要先读取文件内容,判断行数,然后再写入新的内容,更新数据库的文件行数? 多人请求时,怎么保证,一个人读数据时,其他人不能读也不能写(但是这样是不是别人就只能等着了。)? 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

情痴 2021-12-09 13:40:23

你得先搞清楚是读还是写,读的话,多少个一起读都没事,写的话就得加锁或者队列之类的了

泪冰清 2021-12-09 12:50:44

应该是多人可读,一个人写吧,加个锁就可以了。

各自安好 2021-12-09 12:03:44

谢谢。 加锁的话,别人请求时,就会停着不动(直到别人完成后开始操作文件,或者连接超时再中断吗?) ; 事务的话,如果双方同时访问数据库,同时获取行数为10 , 然后各自写入文件10行,更改行数, 这个时候,数据库结果不久会增加20了吗?

筱果果 2021-12-09 11:54:27

回复
等多久主要看你的业务执行时间,一般业业务应该在几毫秒。事物也是一样的 需要等上一个请求执行完成了后面的请求才读取得到数据。会阻塞在事物那里 不会 并行执行

绝情姑娘 2021-12-09 11:23:21

加锁等操作完了再释放。
看你在操作数据库还有个取巧的办法就是给数据库加事物,读写文件的操作在开启事物后,这样就不用加锁了

鹤舞 2021-12-09 08:17:28

不需要锁,你可以试下copy on write 机制

酷到爆炸 2021-12-09 05:54:44

谢谢

沦落红尘 2021-12-05 14:26:53

你这个和数据库事务一级隔离级别是一个道理。 从理论上建议参考一下数据库的事务和隔离级别。正好我这里有一篇文章推荐你看一下。

https://my.oschina.net/huangyong/blog/160012

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文