Является ли Python file.write атомарным?

Являются ли операторы file.write атомами в Python или C?

Пример

Рассмотрим следующие два потока

Тема 1

with open('foo', 'a') as f:
    f.write('123456')

Тема 2

with open('foo', 'a') as f:
    f.write('abcdef')

Гарантируется ли нам, что мы не получаем смешанный текст следующим образом?

1a2b3c4d5e6f
or 
123abc456def

но вместо этого получить один из двух возможных правильных результатов

123456abcdef
abcdef123456

Обратите внимание, что в каждом потоке есть один вызов для записи, очевидно, для атомной множественной записи требуется некоторая блокировка. Я также знаю файловые блокировки. Идеальный ответ на этот вопрос - да/нет, а также доказательства/документация.

+5
источник поделиться

Посмотрите другие вопросы по меткам или Задайте вопрос