Python 多執行緒

2021-09-18 05:48:26 字數 2309 閱讀 8331

thread模組:

//thread模組函式:

- start_new_thread(func,args,keywords)產生乙個新的執行緒,指定函式的引數

- allocate_lock() 分配乙個locktype的鎖物件

- exit() 執行緒退出

// locktype型別鎖物件函式:

- acquire() 嘗試獲取鎖物件

- locked() 如果獲取了鎖物件返回true,否則返回false

- release() 釋放鎖

例子:#!/usr/bin/env python

import thread

from time import sleep ,ctime

loops = [4,2]

def loop(nloop,nesc,lock):

print "start loop " , nloop , "at : " , ctime()

sleep(nesc)

print "loop" , nloop, "done at : " ,ctime()

lock.release()

def main():

print "starting at : " , ctime()

locks =

nloops = range(len(locks))

for i in nloops:

lock = thread.allocate_lock()

lock.acquire()

for i in nloops:

thread.start_new_thread(loop , (i , loops[i] , locks[i]))

for i in nloops:

while locks[i].locked():

pass

print "all done at : " , ctime()

if __name__ == "__main__"

main()

threading模組:

thread可以有多種方法來建立執行緒:

1、建立乙個thread的例項,傳給他乙個函式

2、建立乙個thread的例項,傳給他乙個可呼叫的類物件

3、從thread派生出乙個子類,建立乙個這個子類的例項

thread物件的函式:

- start() 開始執行緒的執行

- run() 定義現場的功能的函式(一般會被子類重寫)

- join(timeout=none) 程式掛起,直到執行緒結束;如果給了timeout,則最多阻塞timeout秒

- getname() 返回執行緒的名字

- setname(name) 設定執行緒的名字

- isalive() 布林標誌,表示這個現場是否還在執行

- isdaemon() 返回執行緒的daemon標誌

- setdaemon(daemon) 把執行緒的daemon標誌設為daemonic(一定要在呼叫start()函式前呼叫)

創乙個thread的例項,傳給他乙個函式:

例子:#!/usr/bin/env python

import threading

from time import sleep ,ctime

loops = [4,2]

def loop(nloop,nesc):

print "start loop " , nloop , "at : " , ctime()

sleep(nesc)

print "loop" , nloop, "done at : " ,ctime()

def main():

print "starting at : " , ctime()

threads=

nloops = range(len(locks))

for i in nloops:

t = threading.thread(target=loop , args=(i , loops[i]))

for i in nloops:

threads[i].start()

for i in nloops:

threads[i].join()

print "all done at : " , ctime()

if __name__ == "__main__"

main()

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...

python多執行緒詳解 Python多執行緒詳解

前言 由於最近的工作中一直需要用到python去處理資料,而在面對大量的資料時,python多執行緒的優勢就展現出來了。因而藉此機會,盡可能詳盡地來闡述python多執行緒。但對於其更底層的實現機制,在此不做深究,僅是對於之前的一知半解做個補充,也希望初學者能夠通過這篇文章,即便是照葫蘆畫瓢,也能夠...

python程式多執行緒 PYTHON多執行緒

在單執行緒的情況下,程式是逐條指令順序執行的。同一時間只做乙個任務,完成了乙個任務再進行下乙個任務。比如有5個人吃飯,單執行緒一次只允許乙個人吃,乙個人吃完了另乙個人才能接著吃,假如每個人吃飯都需要1分鐘,5個人就需要5分鐘。多執行緒的情況下,程式就會同時進行多個任務,雖然在同一時刻也只能執行某個任...