本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。
1、相同点
sleep和wait都用于线程控制,可以阻挡线程。
(1)sleep(milliseconds)如果时间不到,只能调用intereput()强行打断,可以用时间指定自动醒来;wait()notify()/notifyAll()直接唤起.
(2)sleep是thread类的静态方法。 sleep的作用是在到达时恢复线程休眠的时间,也就是说,sleep将在收到时间到达事件时恢复线程 ; wait是object的方法,也就是说,wait方法可以调用到任何对象,wait方法将挂起调用器的线程,直到其他线程调用同一对象的notify方法将重新激活调用器
(3)sleep()是暂停某一线程一段时间,其控制范围由当前线程决定,wait()由某个确定的对象调用。
2、slep和wait的区别
(1)这两种方法来自Thread和Objectttect
(2)最重要的是sleep方法不释放锁,而wait方法释放锁,使其他线程可以使用同步控制块或方法。
(3)wait,notify和notifyall只能在同步控制方法或同步控制块中使用,sleep可以在任何地方使用
(4)slep必须捕获异常,而wait、notify和notifyall不需要捕获异常
3、实例
importtime time.sleep(5) time.sleep(N)
上面的time.sleep()程序执行可以暂停,暂停时间可以根据函数传输的值来确定。
在使用多线程时,为了使线程顺利进行,我们将使用函数暂停某个线程。多线程中有两个函数可以实现sleep和wait,但它们在使用时也有所不同。
以上是python sleep和wait的对比分析,相信大家看完文章都能分辨出它们的区别和联系,在释放锁的这一步要特别注意。