python线程锁(thread)学习示例

麻雀的确可爱,它的脑袋很小,只有栗子那么大,眼晴虽小却非常有神,它的身体小巧成蛋状流线型,放在手上只占手掌的一半。它浑身长着灰褐色羽毛,和树皮色相似,是一种保护色,它颈部和腹部的毛发白,显得很匀称,它的尾巴像半张开的小扇子。它飞得很快,也很有趣,那么一窜窜的。


# encoding: UTF-8
import thread
import time# 一个用于在线程中执行的函数
def func():
for i in range(5):
print 'func'
time.sleep(1)# 结束当前线程
# 这个方法与thread.exit_thread()等价
thread.exit() # 当func返回时,线程同样会结束# 启动一个线程,线程立即开始运行
# 这个方法与thread.start_new_thread()等价
# 第一个参数是方法,第二个参数是方法的参数
thread.start_new(func, ()) # 方法没有参数时需要传入空tuple# 创建一个锁(LockType,不能直接实例化)
# 这个方法与thread.allocate_lock()等价
lock = thread.allocate()# 判断锁是锁定状态还是释放状态
print lock.locked()# 锁通常用于控制对共享资源的访问
count = 0# 获得锁,成功获得锁定后返回True
# 可选的timeout参数不填时将一直阻塞直到获得锁定
# 否则超时后将返回False
if lock.acquire():
count += 1# 释放锁
lock.release()# thread模块提供的线程都将在主线程结束后同时结束
time.sleep(6)

thread 模块提供的其他方法:
thread.interrupt_main(): 在其他线程中终止主线程。
thread.get_ident(): 获得一个代表当前线程的魔法数字,常用于从一个字典中获得线程相关的数据。这个数字本身没有任何含义,并且当线程结束后会被新线程复用。

thread还提供了一个ThreadLocal类用于管理线程相关的数据,名为 thread._local,threading中引用了这个类。

到此这篇关于python线程锁(thread)学习示例就介绍到这了。任何事情,坚持了就是神话,放弃了就是笑话!这个道理听起来很简单,但很多人却做不到,不停的选择,不停的放弃,回头却发现什么事都没做好,坚持,一定能遇到最美的自己,送给正在努力拼搏的我们!更多相关python线程锁(thread)学习示例内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

标签: python thread