手机
当前位置:查字典教程网 >脚本专栏 >python >python线程锁(thread)学习示例
python线程锁(thread)学习示例
摘要:复制代码代码如下:#encoding:UTF-8importthreadimporttime#一个用于在线程中执行的函数deffunc():...

复制代码 代码如下:

# 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中关键字is与==的区别简述

Python 学习笔记

python 多线程应用介绍

Python yield使用方法示例

python使用reportlab画图示例(含中文汉字)

python获取beautifulphoto随机某图片代码实例

python list语法学习(带例子)

wxpython 学习笔记 第一天

python实现保存网页到本地示例

python使用mysqldb连接数据库操作方法示例详解

精品推荐
分类导航