python 无休眠功能的多线程控制
Control of mutlthreads without sleep function in python
如果我们有 10 个线程,在 10 个线程中,我想同时启动前 5 个线程,在这 5 个线程中的 completion/excution 之后,我想启动其他 5 个线程,它们也应该自动完成,在 python
中不使用任何睡眠功能
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()
一般来说,最好避免手动使用线程,而使用线程池执行器。像
with futures.ThreadPoolExecutor(workers=5) as executor:
result = executor.map(Add, [0, 1, 2, 3, 4])
你的其他论点依此类推。
如果我们有 10 个线程,在 10 个线程中,我想同时启动前 5 个线程,在这 5 个线程中的 completion/excution 之后,我想启动其他 5 个线程,它们也应该自动完成,在 python
中不使用任何睡眠功能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()
一般来说,最好避免手动使用线程,而使用线程池执行器。像
with futures.ThreadPoolExecutor(workers=5) as executor:
result = executor.map(Add, [0, 1, 2, 3, 4])
你的其他论点依此类推。