multiprocessing

mister X

Новичок
Пользователь
Дек 13, 2021
1
0
1
Нужно написать код мультипроцессинга для двух функций, в одной мы вводим значения старта и конца (например 0 5), и вводим имена (Паша Женя Ваня). Вторая функция (set) печатает результат. Аргументы написанные внутри функции, обязательны.
На выходе надо получить следующее:
Паша 0
Женя 1
Ваня 2
Паша 3
Женя 4
Ваня 5

Нужно использовать Process, Lock, Value. Ниже есть код, я смог только реализовать последовательный счетчик для одной функции. Как соединить его с именами и вывести, я не могу понять.

Код:
[CODE]from multiprocessing import Process, Lock,Value

start = Value('I',0)

def set(name,item,iter_stop,lock):
    """
    Prints out the item that was passed in
"""
    with start.get_lock():
      start.value+=1
      print(start.value,name)
def start_g():
  start, game_stop = map(int, input().split())
  players = input().split()
  set

if __name__ == '__main__':
    lock = Lock()
    lst=['Паша', 'Женя','Ваня']
    for item in lst:
        p = Process(target=start_g, args=(item, lock))
        p.start()
p.join()[/CODE]

Я могу только написать код без мультипроцессинга, выход должен быть как из этой функции

Код:
def start_game():
        start, game_stop = map(int, input().split())
        players = input().split()
        a=start
        lst=[]
        while a!=game_stop+1:
            for i in players:
                lst.append(i)
                a=a+1
                if a==game_stop+1:
                    break
        for name,current_step in list(zip(lst,range(start,game_stop+1))):
          print(f'{name}: {current_step}')
 

Форум IT Специалистов