本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
1、相同点
sleep和wait都是用来进行线程控制,都可以使线程阻塞。
(1) sleep(毫秒)可以指定时间自动唤醒他。如果时间不够,只能调用interrupt()强制中断; wait() 可以直接通过 notify()/notifyAll() 唤醒。
(2)sleep是Thread类的静态方法。 sleep的作用是让线程休眠指定的时间,到了时间再恢复,也就是说sleep会在事件到达的时间恢复线程; wait 是 Object 的方法,也就是说可以在任何对象上调用 wait 方法。调用wait方法会挂起调用者的线程,直到另一个线程调用同一个对象的notify方法重新激活调用者
(3)sleep()是将一个线程挂起一段时间,它的控制范围由当前线程决定,wait()被某个对象调用。
2、sleep和wait的区别
(1)这两个方法来自不同的类分别是Thread和Object
(2)最重要的是sleep方法不释放锁,wait方法释放锁,让其他线程可以使用同步控制块或方法。
(3)wait、notify和notifyAll只能用在同步控制方法或同步控制块中,而sleep可以在任何地方使用
(4)sleep必须
,而wait,notify和notifyAll不需要捕获异常
3、实例
import time
time.sleep(5)
time.sleep(N)
上面的
time.sleep() 可以暂停程序的执行,暂停时间可以根据函数传递的值来确定。
在
的使用时,为了线程的顺利进行,我们会使用函数来对某个线程进行暂停运行。在多线程中有两个函数可以实现
和wait
,不过它们在使用时也有不同之处。
以上是python sleep和wait的对比分析。相信看完文章你已经可以分辨出它们的区别和联系了,要特别注意释放锁的步骤。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python如何使用递归函数求1+2+3+4+5的值08/26
- ♥ 如何在python中编写函数08/18
- ♥ python中的pip包管理器使用方法10/01
- ♥ anaconda 和 pycharm 有什么区别?09/09
- ♥ 如何在 python 中使用类12/26
- ♥ python中tempfile模块创建临时文件的方法有哪些12/11
内容反馈