Нужно написать код мультипроцессинга для двух функций, в одной мы вводим значения старта и конца (например 0 5), и вводим имена (Паша Женя Ваня). Вторая функция (set) печатает результат. Аргументы написанные внутри функции, обязательны.
На выходе надо получить следующее:
Паша 0
Женя 1
Ваня 2
Паша 3
Женя 4
Ваня 5
Нужно использовать Process, Lock, Value. Ниже есть код, я смог только реализовать последовательный счетчик для одной функции. Как соединить его с именами и вывести, я не могу понять.
p.join()[/CODE]
Я могу только написать код без мультипроцессинга, выход должен быть как из этой функции
На выходе надо получить следующее:
Паша 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()
Я могу только написать код без мультипроцессинга, выход должен быть как из этой функции
Код:
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}')