threading.active_count()
返回當前處於 active 狀態的執行緒的數目
threading.current_thread()
返**用者當前的 thread 物件
threading.get_ident()
返回當前執行緒的「thread identifier」屬性(3.3新增)
threading.enumerate()
返回當前處於 active 狀態的執行緒組成的列表
threading.settrace(func)
為所有從 threading 模組生成的執行緒新增 trace function
threading.setprofile(func)
為所有從 threading 模組生成的執行緒新增 profile function
threading.stack_size([size])
返回建立執行緒時分配的棧空間大小,或通過引數進行設定
注:上面有個別函式是無法通過「from threading import *」匯入的,必須通過「.」來訪問。
threading.timeout_max
此常量限定 timeout 引數的最大值,超則overflowerror(3.2新增)
thread-local data 用於存放「執行緒區分」的資料。要想使用它,只須建立乙個 local 類例項(或子類)然後在它的屬性裡儲存資料。不同執行緒訪問該例項的屬性值,是不同的。
>>> mydata = threading.local()
>>> mydata.x = 1
>>> type(mydata)
給構造器傳乙個可呼叫物件(可以是函式,也可以是覆蓋了 __call__() 方法的類例項)
子類化 thread 類,並覆蓋 run() 方法
>>> threading.current_thread()
<_mainthread(mainthread, started 1808)>
>>> threading.current_thread().name
'mainthread'
>>> type(threading.current_thread())
class threading.thread(group=none,target=none,name=none,args=(),kwargs={},*,daemon=none)
thread 類的屬性和方法:
start()
run()
join(timeout=none)
name
getname() / setname()
ident
is_alive()
daemon
isdaemon() / setdaemon()
class threading.lock
acquire(blocking=true,timeout=-1)
release()
class threading.rlock
acquire(blocking=true,timeout=-1)
class threading.condition(lock=none)
acquire(*args)
release()
wait(timeout=none)
wait_for(predicate,timeout=none)
notify(n=1)
notify_all()
class threading.semaphore(value=1)
acquire(blocking=true,timeout=none)
release()
class threading.boundedsemaphore(value=1)
舉個栗子:
semaphore 常用於守護限制訪問的資源,比如資料庫。實際上在任何對訪問有數量限制的情形下,你都應該使用 bounded semaphore 物件。在建立大量的訪問執行緒前,你的主線程應該先初始化這個 semaphore。:
max_connection = 5
#...
pool_sema = boundedsemaphore(value=max_connection)
with pool_sema:
with connectdb():
#...use connection...
class threading.event
class threading.timer(interval,function,args=none,kwargs=none)
cancel()
class threading.barrier(parties,action=none,timeout=none)
wait(timeout=none)
reset()
abort()
parites
n_waiting
broken
exception threading.brokenbarriererror
本模組裡的物件,只要有 acquire() 、release() 這對方法的,都支援上下文管理協議。其中 acquire() 會在 __enter__() 裡呼叫,release() 會在 __quit__() 裡呼叫。因此,下面的用法:
with some_lock:
#do sth.
等價於:
some_lock.acquire()
try:
#do_sth.
finally:
some_lock.release()
python多執行緒模組 threading使用方法
先來看這段 import threading import time def worker print worker time.sleep 1 return for i in xrange 5 t threading.thread target worker t.start 這段 就使用了多執行緒,...
python多執行緒模組threading學習
本文主要介紹threading模組的使用。1.建立乙個threading.thread類的物件,並在初始化函式 init 中傳入可呼叫物件作為執行目標。初始化函式原型以下是threading.thread類的初始化函式原型 definit self,group none,target none,na...
Python多執行緒 threading模組
用threading模組,可以實現python多執行緒程式設計。import threading import time def video secs for i in range secs print 邊看 操.d i time.sleep 1 def dance secs for i in ra...