2021
06-04
06-04
java sleep()和wait()的区别点总结
1、区别说明wait()是Object的方法,sleep()是Thread的方法。wait()必须采用同步方法,不需要sleep()方法。线程在同步方法中执行sleep()方法,不释放monitor锁,wait()方法释放monitor锁。短暂休眠后,sleep()方法会主动退出阻塞,而wait()方法需要在没有指定wait时间的情况下被其他线程中断才能退出阻塞。2、实例importjava.text.SimpleDateFormat;importjava.util.Date;publicclassTestSleepAndWait{publicstaticvoidmain...
继续阅读 >
一、前期基础知识储备sleep()和wait()方法都是Java中造成线程阻塞的方法。感兴趣的读者可以参见笔者之前的文章《Java中什么方法导致线程阻塞》,里面详细讲述了为什么Java要造成线程阻塞和Java中造成线程阻塞的几种方法。(1)线程的生命周期这是笔者在谷歌图片中找到的一张简单描述线程生命周期的图片,可以看到,一个线程正常的生命周期中会经历“创建”“就绪”“运行”“阻塞”“运行”“死亡”等几个生命周期,其中“阻塞”是...