sleep(1000)和wait(1000)到底有什么区别?1000毫秒后谁会立即运行?

 我来答
life小道
推荐于2017-09-26 · TA获得超过784个赞
知道小有建树答主
回答量:455
采纳率:50%
帮助的人:110万
展开全部
这两个方法来自不同的类分别是Thread和Object
最主要的区别是sleep方法没有释放锁,而 wait 方法释放了锁,使握模得其他线程可以使用同步控制块或者方法。
sleep指线程被调用时,占着CPU不工作,形象地说明为“占着CPU睡觉”,此时,系统的CPU部分资源被占用,其他线程无穗皮穗法进入,会增加时间限制。
wait指线程处于进入等待状态,形象地猜卜说明为“等待使用CPU”,此时线程不占用任何资源,不增加时间限制。
所以
sleep(1000)意思为:占用CPU,线程休眠1000毫秒
wait(1000)意思为:不占用CPU,线程等待1000毫秒
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
bhtzu
推荐于2017-09-08 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4195万
展开全部
在C/C++中,wait(1000)是错误用法。
sleep和delay函数,是挂起(延时)一段时间的函数胡氏,用法和环境有细微差别,效果基本一致,都是进程挂起。
wait函数,是进程管理函数,其参数是等待的子进程状态(int *类型,获取结束的状态值),而不是一个时间长度。
因此如果搏液希望暂停运行一个准确的时间,就用sleep吧。

如果是其它语言环境,函数的意义则完全不同。比如JAVA,sleep同样是线程休眠,wait则是等待+超时(只能用于同步控制模块),这样的wait(1000)是可以的,但并不保证一定等待1秒,可能对象0.5秒结束,那么0.5秒后就会基做物继续执行了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魈影home
2015-10-22 · 超过23用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:49.7万
展开全部
sleep是使当前线程休眠不做任何动作,wait是阻塞当前线程,并回收结束后的子线程没回收的内存。就是sleep就只知道睡觉,wait就是在等待中做事。
然后第二问:就得拆庆看那条册悉语句在前面,谁就先运行
比如他们的位置是
sleep(1000);
wait(1000);
那么就是sleep先州御乎运行完在运行wait,反之则是wait先运行完在运行sleep 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e99b630
2015-10-12
知道答主
回答量:26
采纳率:0%
帮助的人:19.9万
展开全部
sleep()只能暂停本线程不能暂停其他线程,而wait可以暂停任意线程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dark19861201
2014-09-16 · TA获得超过2152个赞
知道大有可为答主
回答量:2584
采纳率:79%
帮助的人:1788万
展开全部
sleep就是线程睡眠,到了时间自己会自动执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式