最近,我使用多重处理编写了脚本。我无法发布该脚本,因此我举了以下小例子。
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()。现在,程序将在多处理开始四次旧打印文本之前进行打印。当多处理程序正在运行时,仅当前的打印命令有效,这很好。但是,如何在多处理开始之前清除冲洗,以免得到旧结果的多重打印?
我希望解释是可以理解的...
谢谢您的帮助,>
约翰
最近,我使用多重处理编写了脚本。我无法发布该脚本,因此我举了以下小例子。导入多处理导入时间导入系统清晰度测试(i):适用于范围(10)中的i:...
我可以,但结构更简单: