python - Python多处理示例不打印
问题描述
我在网上找到了一个非常简单的多处理示例(如下所示)。出于某种原因,当我在 Spyder 中执行它时,它根本不会打印任何内容。它也不挂。我正在使用 Python 3.x。有谁知道为什么?
from multiprocessing import Process
def print_func(continent='Asia'):
print('The name of continent is : ', continent)
if __name__ == "__main__": # confirms that the code is under main function
names = ['America', 'Europe', 'Africa']
procs = []
proc = Process(target=print_func) # instantiating without any argument
procs.append(proc)
proc.start()
# instantiating process with arguments
for name in names:
# print(name)
proc = Process(target=print_func, args=(name,))
procs.append(proc)
proc.start()
# complete the processes
for proc in procs:
proc.join()
解决方案
当你在线程或其他进程中你不会得到它的标准输出,所以如果你想记录你最好使用 python 日志记录文档链接:https ://docs.python.org/3/library/logging.html
您还可以查看更多解决方案https://eli.thegreenplace.net/2015/redirecting-all-kinds-of-stdout-in-python/
推荐阅读
- sql - oracle sql调优:IO请求还是IO字节,我更喜欢哪个?
- react-native - 道具数据未呈现
- java - 从 JComboBox Java Swing 中移除焦点
- powershell - 如何在以管理员身份远程访问他的笔记本电脑时删除用户的证书?
- c# - 使用具有多个线程的 Nlog 在数据库中写入日志问题
- c# - 选择排序错误:错误输出;未排序的重复项
- javascript - 链接点击在浏览器中有效,但在 android webview 中无效 - IONIC
- python - 如何在 QScintilla 中使用自定义折叠图标?
- elasticsearch - elasticsearch有没有办法自动从别名中删除索引而不删除它
- python - 如何使用 diff() 函数识别 Pandas 中的薪资变化以进行 HR 分析?