使用Python库concurrent-output来实现多进程同时输出到控制台的不同区域。代码示例如下:
import concurrent_output
import time
def worker(msg, stream):
for i in range(5):
stream.write('[{}] {}\n'.format(msg, i))
stream.flush()
time.sleep(1)
with concurrent_output.temporary_output() as output:
with concurrent_output.concurrent_output() as streams:
for msg in ('foo', 'bar', 'baz'):
stream = streams[msg]
output.write('starting {}\n'.format(msg))
output.flush()
stream.write('running {}\n'.format(msg))
stream.flush()
worker(msg, stream)
在代码中,temporary_output
上下文管理器会自动分配控制台输出区域。concurrent_output
上下文管理器会为每个进程分配一个输出区域,并在退出时将其释放。函数worker()
表示每个进程的执行内容。在主程序中,进行进程的初始化和启动,最后每个进程分配一个输出区域。通过使用该库,可以实现多进程同时输出到控制台的不同区域。