我有一个像下面这样的代码,它由许多进程同时运行。记录器配置为仅写入stdout。但是,如果我取下锁,一切仍然可以正常工作。所以我想知道哪种方法(锁定/无锁定)是正确的以及为什么。
self._console = logging.getLogger("console")
with self._stdout_lock: # the line in question
message_f = "..."
self._console.info(message_f)
我已经尝试将一些记录器替换为原始sys.stdout.write() sys.stdout.flush()
,但它仍能正常工作。