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不需要捕获异常
查看全文
相关阅读:
阿里云部署SSL证书详解
PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法
APACHE服务器出现No input file specified.的完美解决方案
Lnmp修改php.ini配置
CGI,FASTCGI,PHPFPM的区别
CLR Via CSharp读书笔记(25):线程基础
Java Network Programming FAQ.
SchemaFree MySQL vs NoSQL
ERROR: JDWP Unable to get JNI 1.2 environment
Firebug Internals
原文地址:https://www.cnblogs.com/web100/p/sleep-wait.html
最新文章
HTTP chunked+gzip及浏览器兼容测试
Better Java GZIP Compression
Java OCR API library SDK component control with free trial
java socket 实现http请求
关于chunked gzip,socket下载网页内容.
gzip chunked
httpclient embedded example for gziped content fetch
模拟http请求,支持gzip,chunked格式
JSP学习笔记(七十五):使用HttpClient远程抓取网页内容
老的proftpd.conf配置
热门文章
asp.net实现Access数据库备份还原
CSS3草案的更新:弹性盒子布局和CSS3字体模块
XNA那些事三 舞动的精灵(下)
前端开发必备工具:WhatFont Bookmarklet方便的查询网页上的字体
XNA那些事二 舞动的精灵(上)
程序员转型不得不说的事(二) 成为技术大牛
asp.net 加密解密URL
asp.net 实现支付宝接口
SQL对日期的一些操作
程序员转型不得不说的事(一) 转型的原因
Copyright © 2011-2022 走看看