用threading模組的join函式可以檢測執行緒是否結束
如果只能用thread模組,可以使用標誌位,不過效率比較低,程式碼風格也不好
這個相當於自旋鎖
from time import sleep,ctime
import thread
def loop0(sign):
print "start loop 0 at:",ctime()
sleep(4)
print "loop 0 done at:",ctime()
sign[0]=True
def loop1(sign):
print "start loop 1 at:",ctime()
sleep(2)
print "loop 1 done at:",ctime()
sign[1]=True
def main():
print "starting at:",ctime()
sign=[False,False]
thread.start_new_thread(loop0,(sign,))
thread.start_new_thread(loop1,(sign,))
while not all(sign):pass
print "all DONE at:",ctime()
if __name__=="__main__":
main()
用threading模組的join函式可以檢測執行緒是否結束
如果只能用thread模組,可以使用標誌位,不過效率比較低,程式碼風格也不好
這個相當於自旋鎖
from time import sleep,ctime
import thread
def loop0(sign):
print "start loop 0 at:",ctime()
sleep(4)
print "loop 0 done at:",ctime()
sign[0]=True
def loop1(sign):
print "start loop 1 at:",ctime()
sleep(2)
print "loop 1 done at:",ctime()
sign[1]=True
def main():
print "starting at:",ctime()
sign=[False,False]
thread.start_new_thread(loop0,(sign,))
thread.start_new_thread(loop1,(sign,))
while not all(sign):pass
print "all DONE at:",ctime()
if __name__=="__main__":
main()