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不需要捕获异常
查看全文
相关阅读:
网站安全编程 黑客入侵 脚本黑客 高级语法入侵 C/C++ C# PHP JSP 编程
【算法导论】贪心算法,递归算法,动态规划算法总结
cocoa2dx tiled map添加tile翻转功能
8月30日上海ORACLE大会演讲PPT下载
【算法导论】双调欧几里得旅行商问题
Codeforces Round #501 (Div. 3) B. Obtaining the String (思维,字符串)
Codeforces Round #498 (Div. 3) D. Two Strings Swaps (思维)
Educational Codeforces Round 89 (Rated for Div. 2) B. Shuffle (数学,区间)
洛谷 P1379 八数码难题 (BFS)
Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords (贪心)
原文地址:https://www.cnblogs.com/needly/p/3505139.html
最新文章
corosync
[转]KVM 虚拟机详细说明
DRBD
[zz]Scripting KVM with Python, Part 1: libvirt
pacemaker
jdk安装 小强斋
JSF>概述 小强斋
JSF>其他标签 小强斋
java.sql.SQLException: 关闭的连接 小强斋
JSF>其他标签 小强斋
热门文章
jdk安装 小强斋
删除表中所有记录 小强斋
删除表中所有记录 小强斋
JSF>概述 小强斋
jdk安装 小强斋
基于数据库开发常用方法逻辑总结
千脑跳转页面下的安全分析
网站安全编程 网站要如何写才安全 .net程序员的误区 asp.net安全编程
INFOBRIGHT的使用总结
红黑树源码及错误解析
Copyright © 2011-2022 走看看