【Python】python 多執行緒兩種實現方式
目前python 提供了幾種多執行緒實現方式 thread,threading,multithreading ,其中thread模組比較底層,而threading模組是對thread做了一些包裝,可以更加方便的被使用。
2.7版本之前python對執行緒的支援還不夠完善,不能利用多核CPU,但是2.7版本的python中已經考慮改進這點,出現了multithreading 模組。threading模組裡面主要是對一些執行緒的操作物件化,建立Thread的class。一般來說,使用執行緒有兩種模式:
A 建立執行緒要執行的函式,把這個函式傳遞進Thread物件裡,讓它來執行;
B 繼承Thread類,建立一個新的class,將要執行的程式碼 寫到run函式裡面。
本文介紹兩種實現方法。
第一種 建立函式並且傳入Thread 物件中
t.py 指令碼內容
執行結果:
thclass.py 指令碼內容:
執行結果:
2.7版本之前python對執行緒的支援還不夠完善,不能利用多核CPU,但是2.7版本的python中已經考慮改進這點,出現了multithreading 模組。threading模組裡面主要是對一些執行緒的操作物件化,建立Thread的class。一般來說,使用執行緒有兩種模式:
A 建立執行緒要執行的函式,把這個函式傳遞進Thread物件裡,讓它來執行;
B 繼承Thread類,建立一個新的class,將要執行的程式碼 寫到run函式裡面。
本文介紹兩種實現方法。
第一種 建立函式並且傳入Thread 物件中
t.py 指令碼內容
-
import threading,time
-
from time import sleep, ctime
-
def now() :
-
return str( time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) )
-
-
def test(nloop, nsec):
-
print 'start loop', nloop, 'at:', now()
-
sleep(nsec)
-
print 'loop', nloop, 'done at:', now()
-
-
def main():
-
print 'starting at:',now()
-
threadpool=[]
-
-
for i in xrange(10):
-
th = threading.Thread(target= test,args= (i,2))
-
threadpool.append(th)
-
-
for th in threadpool:
-
th.start()
-
-
for th in threadpool :
-
threading.Thread.join( th )
-
-
print 'all Done at:', now()
-
-
if __name__ == '__main__':
- main()
thclass.py 指令碼內容:
-
import threading ,time
-
from time import sleep, ctime
-
def now() :
-
return str( time.strftime( '%Y-%m-%d %H:%M:%S' , time.localtime() ) )
-
-
class myThread (threading.Thread) :
-
"""docstring for myThread"""
-
def __init__(self, nloop, nsec) :
-
super(myThread, self).__init__()
-
self.nloop = nloop
-
self.nsec = nsec
-
-
def run(self):
-
print 'start loop', self.nloop, 'at:', ctime()
-
sleep(self.nsec)
-
print 'loop', self.nloop, 'done at:', ctime()
-
def main():
-
thpool=[]
-
print 'starting at:',now()
-
-
for i in xrange(10):
-
thpool.append(myThread(i,2))
-
-
for th in thpool:
-
th.start()
-
-
for th in thpool:
-
th.join()
-
-
print 'all Done at:', now()
-
-
if __name__ == '__main__':
- main()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-1178285/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於多執行緒的兩種實現方式執行緒
- 3種方式實現python多執行緒併發處理Python執行緒
- 【java】【多執行緒】建立執行緒的兩種常用方式(2)Java執行緒
- Java實現多執行緒的三種方式Java執行緒
- Java建立多執行緒的幾種方式實現Java執行緒
- Python簡單實現多執行緒例子Python執行緒
- Java多執行緒實現方式Java執行緒
- 【多執行緒高併發程式設計】二 實現多執行緒的幾種方式執行緒程式設計
- Python實現投遞多執行緒任務Python執行緒
- 多執行緒的建立 兩種方式以及使用建議執行緒
- Python 多執行緒多程式Python執行緒
- 面試-實現多執行緒的方式面試執行緒
- 多執行緒的三種實現方式及靜態代理模式執行緒模式
- python執行緒池的實現Python執行緒
- python多執行緒中訊息佇列如何實現?Python執行緒佇列
- Java多執行緒【三種實現方法】Java執行緒
- Map實現執行緒安全的3種方式執行緒
- Python 多執行緒及程式Python執行緒
- python3 多執行緒Python執行緒
- 04.python-多執行緒Python執行緒
- python--多工執行緒Python執行緒
- python多執行緒基礎Python執行緒
- python有多執行緒嗎Python執行緒
- 執行緒、開啟執行緒的兩種方式、執行緒下的Join方法、守護執行緒執行緒
- python多執行緒中:如何關閉執行緒?Python執行緒
- Java高併發與多執行緒(二)-----執行緒的實現方式Java執行緒
- Java多執行緒之—Synchronized方式和CAS方式實現執行緒安全效能對比Java執行緒synchronized
- Python實現執行緒安全佇列Python執行緒佇列
- python實現自定義執行緒池Python執行緒
- Java建立多執行緒的四種方式Java執行緒
- 入門python多執行緒/多程式Python執行緒
- Python中的多工:多執行緒Python執行緒
- Python的多程式和多執行緒Python執行緒
- java執行緒實現方式Java執行緒
- python中5種執行緒鎖Python執行緒
- Java之實現多執行緒的方式三:實現Callable介面(結合執行緒池使用)Java執行緒
- Python進行開發的兩種方式Python
- Python實現定時任務的多種方式Python
- python 多執行緒程式設計Python執行緒程式設計