python進程與線程小結(jié)實例分析
更新時間:2018年11月11日 13:08:19 作者:一個勤奮的程序員
本文通過實例代碼分析了python進程與線程知識小結(jié),非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
傳統(tǒng)方式是調(diào)用2個方法執(zhí)行1個任務,方法按順序依次執(zhí)行
# -*- coding:utf-8 -*- import threading import time def run(n): print('task',n) time.sleep(3) if __name__ == '__main__': run('t1') run('t2')
多線程例子
2個線程同時并發(fā)執(zhí)行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__': #在主方法通過對象調(diào)用線程 t1=MyThread('t1') t2=MyThread('t2') t1.run() t2.run()
使用for循環(huán)啟動多個線程
# -*- 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()
等多線程同時執(zhí)行完后,再執(zhí)行其它代碼,因為線程是與其它代碼一起運行的
# -*- 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) # 等所有線程執(zhí)行完后,再執(zhí)行下面的代碼 # 因為線程與下面的代碼是同時運行的 # 要想先等線程執(zhí)行完畢再執(zhí)行其它代碼 # 使用join()方法進行阻塞 #在這里統(tǒng)一結(jié)束所有t線程 for i in t_objects: t.join() time_end=time.time() sun=time_end-time_start print(sun)
總結(jié)
以上所述是小編給大家介紹的python進程與線程小結(jié)實例分析,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
相關(guān)文章
ThinkPHP3.1.x修改成功與失敗跳轉(zhuǎn)頁面的方法
這篇文章主要介紹了ThinkPHP3.1.x修改成功與失敗跳轉(zhuǎn)頁面的方法,涉及thinkPHP底層源文件中相關(guān)跳轉(zhuǎn)代碼的設置與修改操作技巧,需要的朋友可以參考下2017-09-09CentOS 上搭建 PHP7 開發(fā)測試環(huán)境
本文給大家分享的是作者在centos上搭建部署php7的開發(fā)測試環(huán)境的全部過程,非常的細致,有需要的小伙伴可以參考下2017-02-02