python多執行緒有幾種實現方法

2021-07-02 20:34:24 字數 1951 閱讀 9903

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 物件

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))

for th in threadpool:

th.start()

for th in threadpool :

threading.thread.join( th )

print 'all done at:', now()

if __name__ == '__main__':

main()

第二種是建立乙個新的class,將要執行的** 寫到run函式裡面。

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):

for th in thpool:

th.start()

for th in thpool:

th.join()

print 'all done at:', now()

if __name__ == '__main__':

main()

多執行緒有幾種實現方法 同步有幾種實現方法

多執行緒有兩種實現方法,分別是繼承thread類與實現 runnable介面 同步的實現方面有兩種,分別是synchronized,wait與 notify wait 使乙個執行緒處於等待狀態,並且釋放所持有的物件的 lock sleep 使乙個正在執行的執行緒處於睡眠狀態,是乙個靜態方法,呼叫此方...

多執行緒有幾種實現方法 同步有幾種實現方法

多執行緒有兩種實現方法,分別是繼承 thread 類與實現 runnable 介面 同步的實現方面有兩種,分別是synchronized,wait 與notify wait 使乙個執行緒處於等待狀態,並且釋放所持有的物件的 lock。sleep 使乙個正在執行的執行緒處於睡眠狀態,是乙個靜態方法,呼...

多執行緒有幾種實現方法 同步有幾種實現方法?

多執行緒有兩種實現方式,分別是繼承thread類與實現runnable介面。同步的實現方法有兩種,分別是synchronized,wait與notify。wait 使乙個執行緒處於等待狀態,並且釋放所持有的物件的lock。sleep 使乙個正在執行的執行緒處於睡眠狀態,是乙個靜態方法,呼叫此方法要捕...