我写了这样的代码:
def process(data):
#create file using data
all = ["data1", "data2", "data3"]
我想在所有列表上并行执行处理功能,因为它们正在创建较小的文件,所以我不必担心磁盘写入,但是处理时间很长,所以我想使用所有内核。
如何使用python 2.7中的默认模块来做到这一点?
答案 0 :(得分:3)
您可以尝试以下基本示例:
from threading import Thread
def process(data):
print "processing %s" % data
all = ["data1", "data2", "data3"]
for task in all:
t = Thread(target=process, args=(task,))
t.start()
这里是repl和brief tutorial,显示了如何根据需要让调用者暂停线程的加入。
答案 1 :(得分:3)
或者:
GameObjectParent
或(仅python版本> 3.6.0):
from threading import Thread
def process(data):
print("processing {}".format(data))
l= ["data1", "data2", "data3"]
for task in l:
t = Thread(target=process, args=(task,))
t.start()
答案 2 :(得分:1)
有一个使用multiprocessing
的模板,希望对您有所帮助。
from multiprocessing.dummy import Pool as ThreadPool
def process(data):
print("processing {}".format(data))
alldata = ["data1", "data2", "data3"]
pool = ThreadPool()
results = pool.map(process, alldata)
pool.close()
pool.join()