Python 脚本没有创建足够的输出行

问题描述 投票:0回答:0

我需要在 Python 中使用多处理将 1,000,000 个随机数写入单个文件,并注意它如何影响执行时间。出于某种原因,每当我运行脚本时,我最终只会得到 997,716 个数字。

这是我的代码:

import time
import random
from multiprocessing import Process, Lock

mutex = Lock()

def task1():
    for i in range(500000):
        mutex.acquire()
        f.write(str(random.randint(0,1000)) + "\n")
        mutex.release()
       
def task2():
    for i in range(500000):
        mutex.acquire()
        f.write(str(random.randint(0,1000)) + "\n")
        mutex.release()

start = time.time()

f = open("file2.txt","a")
       
p1 = Process(target = task1, args = ())
p2 = Process(target = task2, args = ())

p1.start()
p2.start()

end = time.time()

print('Execution Time: {}'.format(end-start))
python python-3.x multiprocessing python-multiprocessing mutex
© www.soinside.com 2019 - 2024. All rights reserved.