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