Python多处理器在for循环期间启动进程



我有一个简单的for循环扫描文档,我希望它在继续进行main for循环的同时开始第二个过程

def main():
combatDelta = datetime.timedelta(0, 5, 0 , 0)
combatlog = []
othercombats = []
times = []
with open(path, "r") as file:
firstCombat = True
counter = 0
combatstart = None
lastTime = None
betweencombatDetla = None
start = timer.time()
for line in file:
temp2 = line
temp2 = temp2.split("::")
temp = temp2[0]
temp = temp.split(":")
time = datetime.datetime(2000 + int(temp[0]), int(temp[1]), int(temp[2]), int(temp[3]), int(temp[4]),
int(temp[5][0] + temp[5][1]), int(temp[5][3]) * 100000)
if counter == 0:
combatstart = time
lastTime = time
else:
betweencombatDetla = time - lastTime
lastTime = time
if betweencombatDetla > combatDelta:
print("next combat")
if firstCombat:
p = Process(target=combatAnalyis())
p.start()
firstCombat = False

combattime = time - combatstart
if firstCombat:
combatlog.append(line)
else:
othercombats.append(line)
print(len(combatlog))
print(len(othercombats))
counter += 1

(如果代码有点乱,很抱歉((目的是在继续for循环执行"战斗分析"函数的同时,目前该函数只是一个for循环打印数字作为占位符,以显示多处理正在工作(根据文档,我尝试实现它,但它现在首先执行第二个函数,在此期间不继续for循环

尝试使用线程库运行线程。使用threading.Thread(target=combatAnalyis),然后只使用.start()来启动它。请确保不要在目标函数的名称后面添加paranents-((。

最新更新