您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python進程與線程的分析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
傳統方式是調用2個方法執行1個任務,方法按順序依次執行
# -*- coding:utf-8 -*- import threading import time def run(n): print('task',n) time.sleep(3) if __name__ == '__main__': run('t1') run('t2')
多線程例子
2個線程同時并發執行1個任務
# -*- coding:utf-8 -*- import threading import time def run(n): print('task',n) time.sleep(3) if __name__ == '__main__': t1=threading.Thread(target=run,args=('t1',)) t2=threading.Thread(target=run,args=('t2',)) t1.start() t2.start()
自己寫一個類繼承繼承threading.Thread
# -*- coding:utf-8 -*- import threading import time class MyThread(threading.Thread): def __init__(self,n): super(MyThread,self).__init__() self.n=n #這里面默認就有一個run方法 def run(self): print('runing task',self.n) if __name__ == '__main__': #在主方法通過對象調用線程 t1=MyThread('t1') t2=MyThread('t2') t1.run() t2.run()
使用for循環啟動多個線程
# -*- coding:utf-8 -*- import threading import time def run(n): print('task',n) time.sleep(3) if __name__ == '__main__': for i in range(10): t=threading.Thread(target=run,args=('t-%s'%i,)) t.start()
等多線程同時執行完后,再執行其它代碼,因為線程是與其它代碼一起運行的
# -*- coding:utf-8 -*- import threading import time def run(n): print('task',n) time.sleep(3) if __name__ == '__main__': time_start=time.time() #定義一個空列表裝線程t實例 t_objects=[] for i in range(10): t=threading.Thread(target=run,args=('t-%s'%i,)) t.start() t_objects.append(t) # 等所有線程執行完后,再執行下面的代碼 # 因為線程與下面的代碼是同時運行的 # 要想先等線程執行完畢再執行其它代碼 # 使用join()方法進行阻塞 #在這里統一結束所有t線程 for i in t_objects: t.join() time_end=time.time() sun=time_end-time_start print(sun)
關于python進程與線程的分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。