博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python线程专题4:Timer对象、Lock对象、Rlock对象
阅读量:6606 次
发布时间:2019-06-24

本文共 896 字,大约阅读时间需要 2 分钟。

上一篇文章:
下一篇文章:

Timer对象、Lock对象、Rlock对象

Timer对象

Timer对象用于在稍后的某个时间执行一个函数。
语法:
t=Timer(interval,func,args,kwargs)创建定时器对象,在interval秒后运行函数func,args和kwargs提供传递给func的参数和关键字参数。在调用start()方法后才能启动计定时器。
常用方法:
t.start():启动定时器。t.cancal():如果函数还未执行,取消定时器。

Lock对象

原始锁(互斥锁)是一个同步原语,状态有两种:『已锁定』、『未锁定』。

如果状态已经锁定,尝试获取锁将阻塞,直到锁被释放为止。如果有多个线程等待获取锁,当锁被释放时,只有一个线程获得它,获取顺序是不定的。

语法:
lock=Lock()创建新的Lock对象,初始状态为未锁定。
常用方法:
lock.acquire(blocking):获取锁,如果有必要,需要阻塞到释放锁为止。如果blocking为false,当无法获取锁时将立即返回False,如果成功获取锁则返回True。lock.release():释放一个锁,当锁处于未锁定状态时,或者从与原本调用acquire()方法的线程的不同线程调用此方法,将会报错。

Rlock对象

可重入锁是一个类似于Lock对象的同步原语,但同一个线程可以多次获取它。

它允许拥有锁的线程执行嵌套的acquire()和release()操作。在这种情况下,只有最外层的Release()操作才能将锁重置微未锁定状态。

语法:
rlock=RLock()创建新的可重入锁对象。
常用方法:
rlock.acquire(blocking):获取锁,如果有必要,需要阻塞到锁释放为止。如果没有线程拥有锁,它将被锁定,而且递归级别被置为1.如果此线程已经拥有锁,锁的递归级别加1,而且函数立即返回。rlock.release():通过减少锁的递归级别来释放它。如果在减值后递归级别为0,锁将被重置为未锁定状态。否则,锁将保持已锁定状态。只能由目前拥有锁的线程来调用此方法。

转载地址:http://oubso.baihongyu.com/

你可能感兴趣的文章
Android之布局属性归纳
查看>>
PreferenceActivity使用示例
查看>>
Ubuntu12.04下eclipse提示框黑色背景色的修改方法
查看>>
我的web框架
查看>>
Activity四种启动模式之singleTask应用
查看>>
Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
查看>>
时间格式化
查看>>
mysql报错"ERROR 1206 (HY000): The total number of locks exceeds the lock table size"的解决方法...
查看>>
chrome浏览器开发者工具使用教程[转]
查看>>
matlab运行过程中出现找不到指定模块问题解决
查看>>
Easyui + asp.net MVC 系列教程 第09-17 节 完成登录 高清录制
查看>>
安装SCOM Gateway Server
查看>>
安装SCOM2012在连接数据库时报错:" SQL Server 的安装版本不受支持"
查看>>
如何修改被编译后DLL文件
查看>>
秦火火
查看>>
Jquery分页组件
查看>>
技术人生:都是我的错
查看>>
《转》Ubuntu 12.04常用的快捷键
查看>>
python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)
查看>>
啊哈C!思考快你一步——用编程轻松提升逻辑力
查看>>