Chinaunix

标题: 多并发问题 [打印本页]

作者: danbaoyu    时间: 2019-02-22 22:01
标题: 多并发问题
多个并发进程对同一个文件写数据时,会产生a进程还未写完数据,b进城就开始写入数据,造成文件数据错乱。那如何设置当一个进城写完后,才开始下一个进程写入

作者: 本友会机友会摄友会    时间: 2019-02-23 17:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: wh7211    时间: 2019-02-23 17:53
本帖最后由 wh7211 于 2019-02-23 17:54 编辑

回复 1# danbaoyu

  1. while true
  2. do
  3.     if [ -f file.lock];then
  4.         echo "稍后再试"
  5.         sleep 1
  6.     else
  7.         touch file.lock
  8.         写文件
  9.         rm file.lock
  10.         break
  11.     fi
  12. done
复制代码


作者: 本友会机友会摄友会    时间: 2019-02-25 15:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: james90404    时间: 2019-03-15 05:45
有方法 多熟悉就知


作者: wiewiewie    时间: 2019-03-27 14:59
多个进程 多个写文件,为什么就非要 1个呢? 全部写完 合并 文件。
作者: bikkuri    时间: 2019-04-02 11:38
进程文件锁还应该考虑锁了文件锁以后进程僵住的情况。
可以让进程在锁文件锁的时候把时间戳写进文件锁。
这样后继进程在访问文件锁的时候可以进行判断是否先头进程占用文件锁时间过长,在这样的情况下,终止僵住的先头进程,删除先头文件锁,并创建新的文件锁。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2