- 主题:多进程(线程)同时用Shell脚本对相同文件写操作,会有啥问题吗
会block住,还是直接返回错误?
--
FROM 45.78.9.*
【 在 wjhtingerx 的大作中提到: 】
: 会block住,还是直接返回错误?
取决于打开文件的时候,索取的访问权限啊,
和上厕所差不多, 独占写, 坑位先下手的成功, 后下手的出错
--
FROM 124.126.1.*
两个任务同时写一个文件,写的位置不冲突,这个会不会有问题?
【 在 poggy 的大作中提到: 】
:
: 取决于打开文件的时候,索取的访问权限啊,
: 和上厕所差不多, 独占写, 坑位先下手的成功, 后下手的出错
--
FROM 45.78.9.*
【 在 wjhtingerx 的大作中提到: 】
: 两个任务同时写一个文件,写的位置不冲突,这个会不会有问题?
:
如果只是简单追加写入, 一点问题没有, 事实上,很多服务器应用程序,
由于基本都是多线程的, 写日志常常都是这么干的, 但因为多线程,
不能假设它们追加进去的先后顺序。
另外, 你所说的不冲突是什么意思, 如果写入会导致文件长度变化, 是不可能不冲突。
如果, 一次先把文件长度拉满, 在慢慢填数据,则没有问题, 其实,一些P2P软件的多任务下载
也是这么干的。
另外, 你的使用场景是简单脚本, 有些共享写模式可能依赖操作系统支持,
简单的文件库读写可能需要特殊设置, 需要自己计算写入偏移, 移动控制文件游标
--
FROM 124.126.1.*
谢谢。
是我想复杂了。就是多个进程(线程)同时打开同一个文件写入,是没问题的,只是写入的内容先后顺序就不可控了。
【 在 poggy 的大作中提到: 】
: 如果只是简单追加写入, 一点问题没有, 事实上,很多服务器应用程序,
: 由于基本都是多线程的, 写日志常常都是这么干的, 但因为多线程,
: 不能假设它们追加进去的先后顺序。
: ...................
--
FROM 45.78.9.*