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)线程的生命周期这是笔者在谷歌图片中找到的一张简单描述线程生命周期的图片,可以看到,一个线程正常的生命周期中会经历“创建”“就绪”“运行”“阻塞”“运行”“死亡”等几个生命周期,其中“阻塞”是...
一、API简介Thread.sleep()是Thread类的一个静态方法,使当前线程休眠,进入阻塞状态(暂停执行),如果线程在睡眠状态被中断,将会抛出IterruptedException中断异常。。主要方法如下:【a】sleep(longmillis) 线程睡眠millis毫秒【b】sleep(longmillis,intnanos) 线程睡眠millis毫秒+nanos纳秒Api文档:二、使用方法注意:在哪个线程里面调用sleep()方法就阻塞哪个线程。publicclassSleepDemo{p...