最后几天我用多处理编写了一个脚本。我无法发布该脚本,所以我做了以下小例子。
import multiprocessing
import time
import sys
def test(i):
for i in range (10):
print(i)
sys.stdout.flush()
time.sleep(1)
print("This text is printed four times, but it should be printed only once")
sys.stdout.flush()
x = []
for i in range(4):
x.append(i)
if __name__ == "__main__":
pool = multiprocessing.Pool(processes = 4)
pool.map(test, x)
我的程序打印多次程序的状态(例如,这里是文本"此文本打印四次,但它应该只打印一次"),稍后我开始多处理。多处理启动时,程序会打印旧打印文本的某些时间。虽然多处理正在运行(主要是在开始时),但是会再次打印一些旧的打印文本。 所以我尝试在多处理开始之前使用sys.stdout.flush()。现在,程序在多处理开始之前打印旧打印文本四次。虽然多处理正在运行,但只有当前的打印命令正在运行,这很好。但是,如何在多处理开始之前清除同花顺,我不能得到旧结果的多重打印?
我希望这个解释是可以理解的......
感谢您的帮助,
约翰