【并发篇】06 sleep VS wait

B站 黑马程序员 java八股视频的视频截图 自留备忘用 如有错误请多多指教。

下面代码目前都是截图,等我有空了换成可以复制的代码。。。还是要手动运行一下理解才更透彻

【并发篇】06 sleep VS wait_第1张图片

 代码演示:

①在没有获得锁的情况下调用wait:会报错。

【并发篇】06 sleep VS wait_第2张图片

 那我们现在给它锁,就不会报错了:

【并发篇】06 sleep VS wait_第3张图片

②在已经获得锁的情况下调用wait,锁会释放,其他线程可以获得锁。

【并发篇】06 sleep VS wait_第4张图片

 【并发篇】06 sleep VS wait_第5张图片

③获得锁之后执行sleep:

 【并发篇】06 sleep VS wait_第6张图片

 线程在同步代码块中调用sleep时不会释放锁,只有在sleep结束后,线程退出了同步代码块,才会释放锁。

 【并发篇】06 sleep VS wait_第7张图片

 

可以使用interrupt方法打断睡眠:

 【并发篇】06 sleep VS wait_第8张图片

 打断之后抛出了一个异常:

【并发篇】06 sleep VS wait_第9张图片

 

 

 

你可能感兴趣的:(java,开发语言)