Модуль multiprocessing поддерживает Замки (Locks) так же, как и модуль threading.
Здесь создается функция, которая выводит все, что ей передали. Чтобы не дать процессам конфликтовать друг с другом, используется объект Lock. Этот код зациклится над нашим списком трех объектов и создаст процесс для каждого из них. Каждый процесс будет вызывать функцию, и передавать её одному из объектов. Так как используются замки, следующий процесс в строке будет ждать, пока замок не снимется, после чего он сможет продолжить.
#полезностьдня
Здесь создается функция, которая выводит все, что ей передали. Чтобы не дать процессам конфликтовать друг с другом, используется объект Lock. Этот код зациклится над нашим списком трех объектов и создаст процесс для каждого из них. Каждый процесс будет вызывать функцию, и передавать её одному из объектов. Так как используются замки, следующий процесс в строке будет ждать, пока замок не снимется, после чего он сможет продолжить.
#полезностьдня
from multiprocessing import Process, Lock
def printer(item, lock):
lock.acquire()
try:
print(item)
finally:
lock.release()
if _name_ == '_main_':
lock = Lock()
items = ['tango', 'foxtrot', 10]
for item in items:
p = Process(target=printer, args=(item, lock))
p.start()