这篇文章主要介绍java中sleep()和wait()的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;
这篇文章主要介绍java中sleep()和wait()的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是面向网络的语言;4. 鲁棒性,java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。;5. 安全性,用于网络、分布环境下的Java必须防止病毒的入侵。6. 体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7. 可移植性,Java可以方便地移植到网络上的不同机器。8.解释执行,Java解释器直接对Java字节码进行解释执行。
1、区别说明
wait()是Object的方法,sleep()是Thread的方法。
wait()必须采用同步方法,不需要sleep()方法。
线程在同步方法中执行sleep()方法,不释放monitor锁,wait()方法释放monitor锁。
短暂休眠后,sleep()方法会主动退出阻塞,而wait()方法需要在没有指定wait时间的情况下被其他线程中断才能退出阻塞。
2、实例
import java.text.SimpleDateFORMat;import java.util.Date;public class TestSleepAndWait {public static void main(String[] args) {new Thread1().start();try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}new Thread2().start();}}class Thread1 extends Thread{private void sout(String s){System.out.println(s+" "+new SimpleDateFormat("HH:mm:ss:SS").format(new Date()));}@Overridepublic void run() {sout("enter Thread1.run");synchronized (TestSleepAndWait.class){//wait只能在同步代码块或者同步方法中使用sout("Thread1 is Going to wait");try {TestSleepAndWait.class.wait(); // 这里只能使用持有锁TestSleepAndWait.class.wait(),使用其他对象则报错java.lang.IllegalMonitorStateException} catch (InterruptedException e) {e.printStackTrace();}sout("after waiting, thread1 is going on");sout("thread1 is over");}}}class Thread2 extends Thread{private void sout(String s){System.out.println(s+" "+new SimpleDateFormat("HH:mm:ss:SS").format(new Date()));}@Overridepublic void run() {sout("enter Thread2.run");synchronized (TestSleepAndWait.class){//wait只能在同步代码块或者同步方法中使用sout("Thread2 is going to notify");TestSleepAndWait.class.notify(); 这里只能使用持有锁TestSleepAndWait.classsout("thread2 is going to sleep 10ms");try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}sout("after sleeping, thread2 is going on");sout("thread2 is over");}}}
以上是“java中sleep()和wait()的区别有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!
--结束END--
本文标题: java中sleep()和wait()的区别有哪些
本文链接: https://www.lsjlt.com/news/275364.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0