может ли python выполнять параллельную запись файла без использования блокировки или мьютекса?

У меня две входящие потоки, оба они большие. могу ли я сбросить первые данные, скажем, из позиции файла с 1 по 512, а другой – с 513 по 1023? Обратите внимание, что оба потока идут параллельно.

благодаря!

2 Solutions collect form web for “может ли python выполнять параллельную запись файла без использования блокировки или мьютекса?”

Конечно, вы можете это сделать. Гарантированы ли вы правильные результаты? Нет. Используйте замки или mmap, как было предложено Ignacio.

Вот также хорошее обсуждение: Python несколько потоков, обращающихся к одному файлу

Не уверен точно, что вы подразумеваете под параллелью, но вы можете записать два разных объекта файла, у которых один и тот же файл открыт. Я предполагаю, что неважно, используете ли вы потоки или цикл событий.

>>> f1 = open("/tmp/foo", "a") >>> f2 = open("/tmp/foo", "a") >>> f1.write("a\n") >>> f2.write("b\n") >>> f1.close() >>> f2.close() >>> print open("/tmp/foo").read() a b 
  • Alexa запрашивает подтверждение в python
  • Использование True / False в качестве ключей - как / почему это работает?
  • Python, почему вы использовали over =
  • Распаковка, расширенная распаковка и вложенная расширенная распаковка
  • Удаление пустых строк из ноутбука Jupyter
  • Выполнить все итерации на итерабельном
  • Избегание условий гонки в многопроцессорных очередях Python 3
  • Отображение данных из двоичного файла в python
  • Как сделать значок в QMenu больше (PyQt)?
  • Python - лучший язык программирования в мире.