sleep(1000)和wait(1000)到底有什么区别?1000毫秒后谁会立即运行?
5个回答
展开全部
这两个方法来自不同的类分别是Thread和Object
最主要的区别是sleep方法没有释放锁,而 wait 方法释放了锁,使握模得其他线程可以使用同步控制块或者方法。
sleep指线程被调用时,占着CPU不工作,形象地说明为“占着CPU睡觉”,此时,系统的CPU部分资源被占用,其他线程无穗皮穗法进入,会增加时间限制。
wait指线程处于进入等待状态,形象地猜卜说明为“等待使用CPU”,此时线程不占用任何资源,不增加时间限制。
所以
sleep(1000)意思为:占用CPU,线程休眠1000毫秒
wait(1000)意思为:不占用CPU,线程等待1000毫秒
最主要的区别是sleep方法没有释放锁,而 wait 方法释放了锁,使握模得其他线程可以使用同步控制块或者方法。
sleep指线程被调用时,占着CPU不工作,形象地说明为“占着CPU睡觉”,此时,系统的CPU部分资源被占用,其他线程无穗皮穗法进入,会增加时间限制。
wait指线程处于进入等待状态,形象地猜卜说明为“等待使用CPU”,此时线程不占用任何资源,不增加时间限制。
所以
sleep(1000)意思为:占用CPU,线程休眠1000毫秒
wait(1000)意思为:不占用CPU,线程等待1000毫秒
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机,单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
在C/C++中,wait(1000)是错误用法。
sleep和delay函数,是挂起(延时)一段时间的函数胡氏,用法和环境有细微差别,效果基本一致,都是进程挂起。
wait函数,是进程管理函数,其参数是等待的子进程状态(int *类型,获取结束的状态值),而不是一个时间长度。
因此如果搏液希望暂停运行一个准确的时间,就用sleep吧。
如果是其它语言环境,函数的意义则完全不同。比如JAVA,sleep同样是线程休眠,wait则是等待+超时(只能用于同步控制模块),这样的wait(1000)是可以的,但并不保证一定等待1秒,可能对象0.5秒结束,那么0.5秒后就会基做物继续执行了。
sleep和delay函数,是挂起(延时)一段时间的函数胡氏,用法和环境有细微差别,效果基本一致,都是进程挂起。
wait函数,是进程管理函数,其参数是等待的子进程状态(int *类型,获取结束的状态值),而不是一个时间长度。
因此如果搏液希望暂停运行一个准确的时间,就用sleep吧。
如果是其它语言环境,函数的意义则完全不同。比如JAVA,sleep同样是线程休眠,wait则是等待+超时(只能用于同步控制模块),这样的wait(1000)是可以的,但并不保证一定等待1秒,可能对象0.5秒结束,那么0.5秒后就会基做物继续执行了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sleep是使当前线程休眠不做任何动作,wait是阻塞当前线程,并回收结束后的子线程没回收的内存。就是sleep就只知道睡觉,wait就是在等待中做事。
然后第二问:就得拆庆看那条册悉语句在前面,谁就先运行
比如他们的位置是
sleep(1000);
wait(1000);
那么就是sleep先州御乎运行完在运行wait,反之则是wait先运行完在运行sleep 。
然后第二问:就得拆庆看那条册悉语句在前面,谁就先运行
比如他们的位置是
sleep(1000);
wait(1000);
那么就是sleep先州御乎运行完在运行wait,反之则是wait先运行完在运行sleep 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sleep()只能暂停本线程不能暂停其他线程,而wait可以暂停任意线程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sleep就是线程睡眠,到了时间自己会自动执行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询