【发布时间】:2021-07-01 21:23:11
【问题描述】:
我在一个由另一个.py 文件激活的类中有一个函数。这个函数只是为了同时运行另外两个不同的函数。
它在 Ubuntu 上运行良好,但在 Windows 上却不行。有没有办法在两个系统上获得相同的结果(可能使用不同的代码)?
import multiprocessing
import time
class myClass:
def run_functions(self, var1):
self.p1 = multiprocessing.Process(target=self.first_function, args=[var1])
self.p2 = multiprocessing.Process(target=self.second_function)
self.p1.start()
self.p2.start()
def first_function(self, var1):
print('First function activated ' + var1)
time.sleep(2)
def second_function(self):
print('Second function activated')
x = myClass()
x.run_functions('10') #Normally activated from another .py file with a list
我不介意改用线程。它只需要工作!
【问题讨论】:
-
让我猜猜:它不打印?
-
告诉我们什么时候出错。第一个问题是底部的两行应该在一个
if __name__ == "__main__":if 子句中,当多处理执行一个新的python 并重新导入这个模块时,它可以防止代码重新运行。
标签: python windows multithreading multiprocessing python-multithreading