Python在函数内导入库以进行多线程处理

时间:2015-04-21 10:29:59

标签: python multithreading function global

我有一个使用了很多全局变量的库,我想在多线程应用程序中使用它,但是我想知道的是如果我在函数中导入库,那么库是全局变量等是单独的副本,以便它们不会相互破坏?

2 个答案:

答案 0 :(得分:1)

没有。只有一个“全球”的实例。变量(可能在模块的顶层定义)。

模块只导入一次,第二次导入模块只需将其添加到适当的命名空间。

答案 1 :(得分:1)

没有。 Python在此处具有模块范围,其中您在该模块中定义的全局变量如果被其他线程突变而没有锁定将具有不可预测的行为。

我会将你的代码重构为一组对象,删除使用全局变量,如果你打算共享相同的对象,也可能实现锁定。