Python,你可以从一个类中将模块级函数传递给ThreadPoolExecutor

时间:2014-01-05 04:18:57

标签: python multithreading python-multithreading concurrent.futures

我正在尝试在python中执行多线程,我仍然试图了解可挑选性要求以及我可以保留多少代码OOP。

你能从一个类中运行ThreadPoolExecutor,并在模块级别定义一个函数吗?我的设置如下:

moduleA.py:

def foo():
    run some stuff

class bar(object):
    def runThreads(self):
        executor = futures.ThreadPoolExecutor(5)
        executor.submit(foo)           # do this 5 times in some sort of loop

我希望能够从一个单独的模块中调用它

moduleB.py

from moduleA import bar

A = bar()
A.runThreads()

这会有用吗?我是否还需要导入foo?

1 个答案:

答案 0 :(得分:2)

foo变量的作用域是在模块级别,在bar定义的同一模块中。您的代码应运行良好而不导入foo。有关详细信息,请参阅Short Description of the Scoping Rules?