【发布时间】:2020-12-11 16:40:32
【问题描述】:
我正在制作一个小程序,其中需要一些函数来检查后台的某些内容。
我使用了模块线程,所有这些功能确实同时运行并且一切正常,直到我开始添加更多功能。随着线程模块产生新线程,它们都留在同一个进程中,所以当我添加更多线程时,它们开始相互减慢。
问题不在于 CPU,因为它的利用率从未达到 100% (i5-4460)。我还尝试了为函数创建新进程的多处理模块,但似乎变量无法在不同进程之间共享,或者我不知道如何共享。 (每个函数的新启动进程似乎都使用现有变量,但我的主程序无法访问该函数在单独进程中所做的任何更改,甚至无法访问它创建的新变量)
我尝试使用 global 关键字,但它在多处理中似乎没有像在线程中那样的效果。
我该如何解决这个问题?
我很确定我必须为这些后台功能创建新流程,但我需要从他们那里获得一些反馈,而那部分我不知道要解决。
【问题讨论】:
-
显示演示要解决的问题的代码。
-
我会看一些关于多处理的教程,希望我能在那里找到答案,如果我会在这里发布。
-
docs.python.org/3/library/multiprocessing.html 有小例子,包括如何共享变量。
标签: python multithreading module process global