есть несколько процессов, каждому процессу я присваиваю уникальное имя.
можно ли передать очередь для конкретного процесса по имени?
пример кода
import multiprocessing
import time
def worker(i,stop):
while True:
print(f'Worker-{i}')
if not stop.empty():
stp=stop.get()
if(stp==multiprocessing.current_process().name):
break
else:
stop.put(stp)
time.sleep(1)
print (f'Worker-{i}Вышли из цикла')
if __name__ == '__main__':
procs = []
stop=multiprocessing.Queue()
for i in range(3):
p = multiprocessing.Process(target=worker, name='worker'+str(i), args=(i,stop))
p.start()
time.sleep(5)
for proc in multiprocessing.active_children():
if proc.name == 'worker2':
stop.put(proc.name)
print(f'Передаем команду остановки процессу {proc.name }.')
Код работает и выполняет то что нужно, но правильно ли каждый раз проверять имя процесса и если имя не совпадает , опять запихивать в очередь данные?