首先,这是我第一次try 多线程或多处理(在教程之外).我正在try 通过使用多线程或多处理来加速我的类中的一些初始化,还不确定哪个更有意义.我的代码是这样的
import threading
classlist = []
filelist = ['a','b','c'] #it's a list of string paths
def loadClasses(filelist):
global classlist, filelist
classlist = [OtherClass(i) for i in filelist]
def threadingfunc(filelist):
t1.threading.Thread(target=loadClasses)
threadingfunc()
与我只运行loadClass
函数时相比,这似乎花费了两倍的时间.
OtherClass
大约需要1.5秒才能运行,但当我有大约40个文件要加载时,它会累积起来.
我试图用多处理器做同样的事情,但它似乎根本不起作用. 至于多处理,我还没有任何运气使任何工作. 这和我用过的差不多.
from multiprocessing import Pool
classlist = []
def loadClass(file):
classlist.append(OtherClass(file))
def pool_handler():
p = Pool(2)
for file in filelist:
p.map(loadClass, file)
这花费了大约相同的时间.所以我不知道接下来该往哪里走.
长话短说,我有一个要加载到我的OtherClass
中的文件列表,我正在寻找加快速度的方法.
我很感谢任何人的帮助,请对Nooby好一点!
我已经使用多线程和多处理try 了上面的代码块.我能够让他们工作,但我没有看到完成速度的改善.有些方法实际上更长.