python中的多处理拒绝运行多个进程

2024-09-30 20:20:14 发布

您现在位置:Python中文网/ 问答频道 /正文

import random
import time
import multiprocessing
import sys


start = time.time()
numbers1 = []




def NumGenerator(NumbersArray):
    while NumberCheck(NumbersArray):
        number = random.randint(0,100)
        NumbersArray.append(number)
        end = time.time()
        print(end-start)
    print('average is: ' + str(sum(NumbersArray) / len(NumbersArray)))
    print(str(NumbersArray).replace("[", "").replace("]", ""))
    sys.exit()


def NumberCheck(NumbersArray):
    # Checks if the average of the array is 50
    if NumbersArray:
        if sum(NumbersArray)/len(NumbersArray) != 50:
            return True
        else: return False
    else: return True
process1 = multiprocessing.Process(target=NumGenerator, args=(numbers1,))
process2 = multiprocessing.Process(target=NumGenerator, args=(numbers1,))
process3 = multiprocessing.Process(target=NumGenerator, args=(numbers1,))
process4 = multiprocessing.Process(target=NumGenerator, args=(numbers1,))
process1.start()
process2.start()
process3.start()
process4.start()
process1.join()
process2.join()
process3.join()
process4.join()

这应该在4个线程上运行,生成0到100之间的随机数,并将它们添加到一个数组中,直到该数组的平均值为50。目前它只在一个CPU核心上完成第二部分。在


Tags: importtargetreturniftimeargsmultiprocessingprocess