运行同一脚本的多个实例



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

主GUI

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

订阅.py

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

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

将主代码放入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()

希望它能有所帮助!

**使用以下方式可以运行同一脚本的多个实例。您还可以添加开始下一个过程的时间

import sys
import subprocess
import time
procs = []
inumber=int(input("Enter the number of Instance to start:"))
sleeptime=int(input("Enter the time for Next Process to start:"))
for i in range(inumber):
proc = subprocess.Popen([sys.executable, 'your script', '{}in.csv'.format(i), '{}out.csv'.format(i)])
procs.append(proc)
time.sleep(sleeptime)
for proc in procs:
proc.wait()

相关内容

  • 没有找到相关文章

最新更新