傳統(tǒng)方式是調(diào)用2個方法執(zhí)行1個任務(wù),方法按順序依次執(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個任務(wù)
# -*- 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
#這里面默認(rè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é)實例分析,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
您可能感興趣的文章:- Python并發(fā):多線程與多進程的詳解
- python多進程使用及線程池的使用方法代碼詳解
- python爬蟲之線程池和進程池功能與用法詳解
- Python實現(xiàn)的多進程和多線程功能示例
- python實現(xiàn)守護進程、守護線程、守護非守護并行
- Python實現(xiàn)的自定義多線程多進程類示例
- python進程和線程用法知識點總結(jié)