pythonthread提供了低級別的、原始的線程以及一個簡單的鎖,下面提供一個python線程線程鎖(thread)學習示例,大家參考使用
代碼如下:
#encoding:utf-8
importthread
importtime#一個用于在線程中執(zhí)行的函數
deffunc():
foriinrange(5):
print'func'
time.sleep(1)#結束當前線程
#這個方法與thread.exit_thread()等價
thread.exit()#當func返回時,線程同樣會結束#啟動一個線程,線程立即開始運行
#這個方法與thread.start_new_thread()等價
#第一個參數是方法,第二個參數是方法的參數
thread.start_new(func,())#方法沒有參數時需要傳入空tuple#創(chuàng)建一個鎖(locktype,不能直接實例化)
#這個方法與thread.allocate_lock()等價
lock=thread.allocate()#判斷鎖是鎖定狀態(tài)還是釋放狀態(tài)
printlock.locked()#鎖通常用于控制對共享資源的訪問
count=0#獲得鎖,成功獲得鎖定后返回true
#可選的timeout參數不填時將一直阻塞直到獲得鎖定
#否則超時后將返回false
iflock.acquire():
count+=1#釋放鎖
lock.release()#thread模塊提供的線程都將在主線程結束后同時結束
time.sleep(6)
thread模塊提供的其他方法:
thread.interrupt_main():在其他線程中終止主線程。
thread.get_ident():獲得一個代表當前線程的魔法數字,常用于從一個字典中獲得線程相關的數據。這個數字本身沒有任何含義,并且當線程結束后會被新線程復用。thread還提供了一個threadlocal類用于管理線程相關的數據,名為thread._local,threading中引用了這個類。
2025國考·省考課程試聽報名