最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python线程锁(thread)学习示例

来源:动视网 责编:小采 时间:2020-11-27 14:29:54
文档

python线程锁(thread)学习示例

python线程锁(thread)学习示例: 代码如下:# encoding: UTF-8import threadimport time# 一个用于在线程中执行的函数def func(): for i in range(5): print 'func' time.sleep(1) # 结束当前线程 # 这个方法与thread.exit_thread()等价 thread.exit(
推荐度:
导读python线程锁(thread)学习示例: 代码如下:# encoding: UTF-8import threadimport time# 一个用于在线程中执行的函数def func(): for i in range(5): print 'func' time.sleep(1) # 结束当前线程 # 这个方法与thread.exit_thread()等价 thread.exit(


代码如下:


# 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)学习示例: 代码如下:# encoding: UTF-8import threadimport time# 一个用于在线程中执行的函数def func(): for i in range(5): print 'func' time.sleep(1) # 结束当前线程 # 这个方法与thread.exit_thread()等价 thread.exit(
推荐度:
标签: 学习 示例 实例
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top