zoukankan
html css js c++ java
sleep和wait区别
1. sleep和wait都是用来进行线程控制,他们最大本质的区别是:
sleep()不释放同步锁,wait()释放同步锁.
sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;
wait()可以用notify()直接唤起.
2. sleep是Thread类的静态方法。
sleep的作用是让线程休眠制定的时间,在时间到达时恢复,也就是说sleep将在接到时间到达事件事恢复线程 执行,例如:
try{
System.out.println("I'm going to bed");
Thread.sleep(1000);
System.out.println("I wake up");
}
catch(IntrruptedException e) {
}
wait是Object的方法,也就是说可以对任意一个对象调用wait方法,调用wait方法将会将调用者的线程挂起,直到 其他线程调用同一个对象的notify方法才会重新激活调用者,例如:
try{
obj.wait
}
catch(InterrputedException e) {
}
3. sleep()是让某个线程暂停运行一段时间,其控制范围是由当前线程决定,
wait()是由某个确定的对象来调用的。
sleep和wait的区别有:
1,这两个方法来自不同的类分别是Thread和Object
2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在
任何地方使用
synchronized(x){
x.notify()
//或者wait()
}
4,sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常
查看全文
相关阅读:
python(六):反射
python模块之contexlib
python(五):元类与抽象基类
python之hashlib模块
python(四):面型对象--类的特殊方法
20145226夏艺华 《Java程序设计》第1周学习总结
20145226夏艺华 《Java程序设计》第10周学习总结
20145226夏艺华 《Java程序设计》实验报告四
20145226夏艺华 《Java程序设计》第9周学习总结
20145226夏艺华 《Java程序设计》第8周学习总结
原文地址:https://www.cnblogs.com/web100/p/sleep-wait.html
最新文章
Linux 查看CPU、Memory等资源占用情况
nginx 常见正则匹配符号表示
SaaS “可配置”和“多租户”架构的几种技术实现方式
Mysql并发时经典常见的死锁原因及解决方法
PHP switch分支语句中省略break后还会执行其他case的原因分析
Yii2.0 安装yii2-queue并在Linux启动守护进程监听消息
Redis在Windows下安装全过程
php-fpm如何优化进程数
在scrapy中利用Selector来提取数据
scrapy中的Request和Response对象
热门文章
CrawlSpider
提高scrapy的抓取效率
redis常见的面试题
使用RequestsCookieJar自动保存并传递cookie
使用Scrapyd部署Scrapy爬虫到远程服务器上
梯度寻优与logistic算法
朴素贝叶斯算法
决策树之ID3算法
KNN算法
python网络编程(一):网络编程之ISO/OSI模型
Copyright © 2011-2022 走看看