Python 使用O_追加写入的多个进程是否覆盖数据?
我知道O_APPEND模式是原子模式,那么lseek和write是原子模式,但我认为如果多个进程写入一个日志,它们将覆盖彼此的数据Python 使用O_追加写入的多个进程是否覆盖数据?,python,linux,file,append,Python,Linux,File,Append,我知道O_APPEND模式是原子模式,那么lseek和write是原子模式,但我认为如果多个进程写入一个日志,它们将覆盖彼此的数据 虽然O_APPEND是原子操作,但这两个进程同时设置了lseek,然后在写入日志旁边,这会覆盖数据。您在一次调用中写入的最大数量是多少?不会覆盖(数据丢失)。如果你认为会有并行写入的进程,你就不理解在这种情况下“原子”的含义——关键是查找和写入的行为就像它们同时发生一样。(在实际实现中,首先没有寻道。)然而,可能发生的是进程的输出是交错的。如果单个调用中写入的输出量
虽然O_APPEND是原子操作,但这两个进程同时设置了lseek,然后在写入日志旁边,这会覆盖数据。您在一次调用中写入的最大数量是多少?不会覆盖(数据丢失)。如果你认为会有并行写入的进程,你就不理解在这种情况下“原子”的含义——关键是查找和写入的行为就像它们同时发生一样。(在实际实现中,首先没有寻道。)然而,可能发生的是进程的输出是交错的。如果单个调用中写入的输出量很大,则更可能出现这种情况。