python--多線程多進程
阿新 • • 發佈:2018-12-24
microsoft 就是 循環 star The 單元 等待 threads 否則
下面是一個簡單多線程
一、進程
對於操作系統來說,一個任務就是一個進程(Process),比如打開一個瀏覽器就是啟動一個瀏覽器進程,打開一個記事本就啟動了一個記事本進程,打開兩個記事本就啟動了
兩個記事本進程。進程是很多資源的集合。一個進程可以有多個線程,線程是包含在一個進程裏面的,一個進程裏面默認有一個線程
二、線程(Thread)
線程就是程序裏面最小的執行單元,在一個進程內部,要同時幹多件事,就需要同時運行多個“子任務”,我們把進程內的這些“子任務”稱為線程(Thread)。有些進程還不
止同時幹一件事,比如Word,它可以同時進行打字、拼寫檢查、打印等事情。
三、多線程
多線程就是N個線程一起幹活,並發,python中的多線程使用theading模塊
下面是一個簡單多線程
1 import threading,time 2 def run(): 3 time.sleep(3)#幹活需要3秒 4 print(‘哈哈哈‘) 5 for i in range(5): 6 t = threading.Thread(target=run)#實例化了一個進程 7 #運行線程,括號裏面的就是要做的事 8 t.start()
四、多線程等待
以下用一個簡單的例子來說明
1 import threading,time 2 def run():#主線程 3 time.sleep(3)4 print(‘哈哈‘) 5 6 start_time=time.time() 7 threads=[]#存放啟動的5個線程 8 for i in range(5): 9 t = threading.Thread(target=run)#第一個線程 10 t.start() 11 threads.append(t) 12 print(‘threads:‘,threads) 13 14 for t in threads:#主線程循環等待所有子線程執行結束 15 t.join()#主線程等待子線程執行結束 16 end_time=time.time()17 print(‘run_time..‘,end_time-start_time)
五、守護線程
守護線程,就是只要主線程結束,那麽子線程立即結束
1 import threading,time 2 def run():#主線程 3 time.sleep(3) 4 print(‘哈哈‘) 5 6 for i in range(5): 7 t = threading.Thread(target=run) 8 t.setDaemon(True)#把子線程設置成為守護線程 9 t.start() 10 print(‘運行完成‘)
六、多進程
多進程多用於處理CPU密集型任務
1 import multiprocessing,threading 2 def my(): 3 print(‘哈哈‘) 4 5 #進程5個 6 #每個進程下6個線程 7 def run(num): 8 for i in range(5): 9 t = threading.Thread(target=my) 10 t.start() 11 12 if __name__ ==‘__main__‘:#多進程必須要加上__name__,否則會報錯 13 for i in range(5): 14 p = multiprocessing.Process(target=run,args=(6,))#啟動一個進程 15 p.start() 16 p.join()
python--多線程多進程