Skip to main content
Stack Overflow на русском

Вернуться к просмотру редакций

4 из 7
изменено тело сообщения
manu
  • 23
  • 8

python multiprocessing

import time
from random import randint
import os
from datetime import datetime
from multiprocessing import Process, current_process
def gat(number):
 result = number * 2
 proc_name = current_process().name
 print('{0} doubled to {1} by: {2}'.format(number, result, proc_name), 'No процесса', os.getpid())
 time.sleep(5)
 
 
if __name__ == "__main__":
 tt = int("1",16)
 start = datetime.now()
 procs = []
 for number in range(tt , 1000000, 10):
 p_list = [Process(target=gat, args=(number,)) for _ in range(4)]
 for p in p_list:
 procs.append(p)
 p.start()
 for p in p_list:
 p.join()

вывод резулбтата:

1 doubled to 2 by: Process-1 No процесса 34156
1 doubled to 2 by: Process-3 No процесса 6860
1 doubled to 2 by: Process-2 No процесса 21248
1 doubled to 2 by: Process-4 No процесса 43948
11 doubled to 22 by: Process-5 No процесса 21740
11 doubled to 22 by: Process-6 No процесса 38564
11 doubled to 22 by: Process-7 No процесса 2516
11 doubled to 22 by: Process-8 No процесса 34140
21 doubled to 42 by: Process-9 No процесса 39400
21 doubled to 42 by: Process-10 No процесса 28212
21 doubled to 42 by: Process-11 No процесса 14160
21 doubled to 42 by: Process-12 No процесса 25208

собственно вопрос: как сделать, что бы процессам отдавалось свое число(параметр).

в моем случае, в каждой итерации всем процессам отдается одно и тоже число

как сделать чтоб первый процесс брал первое число из диапазона for number in range(tt , 1000000, 10) , второй процесс 2-е число, третий - 3-е, четвертый - 4-е.

у меня 4-ре процесса и хочу чтобы они по порядку разбирали диапазон

manu
  • 23
  • 8
lang-py

AltStyle によって変換されたページ (->オリジナル) /