Как мне часто выполнять операции чтения / записи файлов (многопоточность) в python? - PullRequest
2 голосов
/ 24 ноября 2010

Вот моя проблема: мне нужно часто выполнять операции чтения / записи одного файла через разные потоки, и я склонен использовать threading.RLock (). Acqu () и threading.RLock (). Release () для блокировкиресурс (например, один текстовый файл).Дело в том, что вы можете легко выполнять операции записи файлов в определенном потоке, как получить возвращаемое значение в потоке?Вот мой пример кода:

FileLock = threading.RLock()

def FileReadingWriting(self, Input, Mode)

    #### Input: things to write
    #### Mode:    1    -    write to the file
    ####          2    -    read from the file

    FileLock.acquire()

    if Mode == 1:
        TheFile = open("example.txt", "w")
        TheFile.write(Input)
        TheFile.close()
    elif Mode == 2:
        TheFile = open("example.txt", "r")
        Content = TheFile.read()
        TheFile.close()

        return Content #### Obviously this won't work, but if I want to get the content in a thread, how should I code?

    FileLock.release()

1 Ответ

0 голосов
/ 24 ноября 2010

Вы должны использовать некоторую переменную, доступную как для рабочего потока, так и для основного потока.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...