您的位置:首页 > 大数据 > 人工智能

挂起和阻塞区别?sleep()和wait()的区别?

2017-10-03 20:04 591 查看
挂起和阻塞区别:

(1)挂起是一种主动行为,因此恢复也应该要主动完成。而阻塞是一种被动行为,是在等待事件或者资源任务的表现,你不知道它什么时候被阻塞,也不清楚它什么时候会恢复阻塞。

(2)阻塞(pend)就是任务释放CPU,其他任务可以运行,一般在等待某种资源或者信号量的时候出现。挂起(suspend)不释放CPU,如果任务优先级高,就永远轮不到其他任务运行。一般挂起用于程序调试中的条件中断,当出现某个条件的情况下挂起,然后进行单步调试。

sleep()和wait()函数的区别:

(1)两者比较的共同之处是:两个方法都是使程序等待多少毫秒。

(2)最主要区别是:sleep()方法没有释放锁。而wait()方法释放了锁,使得其他线程可以使用同步控制块或者方法。

(3)sleep()指线程被调用时,占着CPU不工作,形象的说明为“占着CPU”睡觉。

sleep(2000)表示:占用CPU,程序休眠2秒。

wait(2000)表示:不占用CPU,程序等待2秒。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: