问题描述
如果我们有10个线程,则我要在10个线程中同时启动前5个线程,而在这5个线程完成/执行后,我只想启动另外5个也应该自动完成的线程,而无需使用任何睡眠功能蟒蛇
import threading
import os
import sys
import time
from datetime import datetime,timedelta
now=datetime.now()
print ("starting time ",now)
emptylist=[]
list=[1,2,3,4,5,6,7,8,9,10,11,12]
def Add(num1):
num2=1234
num3=num1+num2
#print num3
#print("\n")
return num3
#print list
count=0
for i in list:
t=threading.Thread(target=Add, args=(i,))
emptylist.append(t)
for j in range(0,len(emptylist)+1,1):
emptylist[j].start()
count+=1
if count%5 ==0:
for k in emptylist:
k.join()
1楼
通常,最好避免手动使用线程,而使用线程池执行程序。 就像是
with futures.ThreadPoolExecutor(workers=5) as executor:
result = executor.map(Add, [0, 1, 2, 3, 4])
以此类推,作为您的其他论点。