下面的情況下,假如子行程p1已經找到num了,p1會終止,但是子行程p2還是會繼續運行,我想讓p1或者p2找到num之后,讓另外的子行程全都停止,這種情況怎么處理呢?
——————————————
import multiprocessing
import time
#遍歷x-y范圍內的數字,找到給定的num
def foo(num,x,y):
while x<=y:
if x==int(num):
print(x,'is the number')
break
else:
print(x)
x=x+1
if __name__=='__main__':
num=input('num=')#輸入要查找的數字
x=0
y=1000000
st1 = time.time()#單行程開始時間
foo(num,x,y)
end1 = time.time()#單行程結束時間
p1=multiprocessing.Process(target=foo,args=(num,x,int(y/2))) #行程1遍歷x~y/2范圍
p2=multiprocessing.Process(target=foo,args=(num,int(y/2),y)) #行程2遍歷y/2~y范圍
st2 = time.time() # 多行程開始時間
p1.start()
p2.start()
p1.join()
p2.join()
end2=time.time()#多行程結束時間
print('單行程用時:',end1-st1)
print('多行程用時:',end2-st2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/118007.html
