运行同一脚本的多个实例

时间:2020-03-31 03:52:13

标签: python multiprocessing

我正在研究制作python脚本,其中有一个主GUI脚本,可以执行一个单独脚本的多个实例。我需要将这些实例分开,因此线程在这里无法工作。我正在研究多处理,但是当我尝试从主脚本执行下标中的功能时,它只会再次启动主脚本。

主GUI

#Gui code...

import multiprocessing
import Subscript

for i in range (0, timestoruninstance):
   p = multiprocessing.Process(target=Subscript.on)
   p.start()

Subscript.py

def on():
   print("Something that will be different each script instance")

运行此代码时,主gui实例似乎只是重复自身,而不是运行多个下标实例。

1 个答案:

答案 0 :(得分:0)

将您的主要代码放入if __name__='__main__'中。据我了解,您的代码直接位于文件中:

import multiprocessing
do_some_funcs()

def on() :
    ....

在python中,该过程从头到尾读取文件,然后继续执行代码。启动一个进程会创建一个新的python执行,这与共享相同对象,导入和所有内容的线程相反。

为防止您的代码运行两次,应执行以下操作:

import multiprocessing

def on():
   ...

if __name__ = '__main__' : 
   do_some_funcs() ...
   p = multiprocessing.Process(target=Subscript.on)
   p.start()

希望有帮助!