Модуль multiprocessing поддерживает Замки (Locks) так же, как и модуль threading.

Здесь создается функция, которая выводит все, что ей передали. Чтобы не дать процессам конфликтовать друг с другом, используется объект 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()