# coding:utf-8
'''
threading 模塊介紹:
1.threading 是對thread模塊的再封裝
2.threading 模塊支持守護線程
3.守護線程 :守護正常線程不會因爲進程結束而被打斷
守護線程會在所有線程結束之後運行
在進程要結束之前會對守護線程進行檢測,如果守護線程沒有被運行,
進程就不會結束而在等待中,如果守護線程在運行就會進程結束
threading.Thread(target,args) 創建線程,但沒有啓動線程
初學只需要用到兩個參數
target 線程所要加載的函數
args 被加載函數所需要的參數
.start() 開啓線程
.join() 掛起線程
在thread模塊中
thread.start_new_thread()方法不僅創建了線程而且啓動了線程
'''
import threading
import time
def loop(nLoop,nSec):
print("loop%s is start at:"%nLoop,time.ctime())
time.sleep(nSec)
print("loop%s is stop at:"%nLoop,time.ctime())
def main():
print("all is start at :",time.ctime())
sleep_list=[2,3,4,2,1]
thread_list=[]
for i in range(len(sleep_list)):
t = threading.Thread(target=loop,args=(i,sleep_list[i])) #創建線程,但沒有啓動線程
thread_list.append(t) #將創建的線程存儲在線程列表當中
for i in thread_list:
print(i) #爲了直觀的看到所有的線程,將創建的線程打印出來
for i in range(len(sleep_list)):
thread_list[i].start() #開啓線程
for i in range(len(sleep_list)):
thread_list[i].join() #掛起線程,但是線程沒有結束,被暫停了
#可以再次打印線程列表看出來
print('---------------------------')
for i in thread_list:
print(i) #打印被掛起的線程
if __name__ == '__main__':
main()
線程(四):使用threading模塊建立線程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.