sleep()和wait()有什么区别
答案:4 悬赏:30 手机版
解决时间 2021-02-25 07:52
- 提问者网友:聂風
- 2021-02-25 03:02
sleep()和wait()有什么区别
最佳答案
- 五星知识达人网友:掌灯师
- 2021-02-25 04:07
sleep()不是放锁,而wait()是释放的。
通俗的说,sleep()就是睡眠一段时间后自动醒来。
而wait()则是等待,直到有线程通知(notify())唤醒他才会重新工作。
就好比你睡觉,早上自然就行了,然后就去上班/上学了。
而和朋友出去玩,约好不见不散,你早到了,就会一直等,一直到你朋友来了告诉你“我来了”,然后你才会继续执行接下来的事情。
呵呵
通俗的说,sleep()就是睡眠一段时间后自动醒来。
而wait()则是等待,直到有线程通知(notify())唤醒他才会重新工作。
就好比你睡觉,早上自然就行了,然后就去上班/上学了。
而和朋友出去玩,约好不见不散,你早到了,就会一直等,一直到你朋友来了告诉你“我来了”,然后你才会继续执行接下来的事情。
呵呵
全部回答
- 1楼网友:何以畏孤独
- 2021-02-25 05:48
答:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。
wait().会释放锁
- 2楼网友:怀裏藏嬌
- 2021-02-25 05:29
举个很简单的例子给楼主:
两个人(A,B)都在(等待)看电影
A(sleep) 等待的时候不会把座位让给别人
B(wait) 也在等待但是它可以把座位让给别人自己站着
也就是说A等待的时候不给把资源交给别人..
而B等待的时候可以把资源交给别人...
就这样.....
浅显易懂...
祝楼主早日成功!!
- 3楼网友:逃夭
- 2021-02-25 04:40
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级 (b)正在运行的线程因为其它原因而阻塞。 wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯