Как я могу прочитать и обновить переменную, совместно используемую несколькими рабочими в Python?
Например, я просматриваю список файлов, используя несколько процессов в Python, и хочу проверить, был ли просканирован родительский каталог или нет.
def readFile(filename):
""" Add the parent folder to the database and process the file
"""
path_parts = os.path.split(filename)
dirname = os.path.basename(path_parts[0])
if dirname not in shared_variable:
# Insert into the database
#Other file functions
def main():
""" Walk through files and pass each file to readFile()
"""
queue = multiprocessing.Queue()
pool = multiprocessing.Pool(None, init, [queue])
for dirpath, dirnames, filenames in os.walk(PATH):
full_path_fnames = map(lambda fn: os.path.join(dirpath, fn),
filenames)
pool.map(readFile, full_path_fnames)
multiprocessing.Manager
, но у вас будут некоторые серьезные состояния гонки, которые будут делать это, если вы не реализуете какое-то условие блокировки мьютекса. Если это вообще возможно, отредактируйте код так, чтобы ваши рабочие процессы вообще не зависели от общего состояния. - person roippi   schedule 18.06.2014