今天在学习java中的condition的时候,遇到一个问题。(最后发现还是基础不行啊~)
在使用condition.await()方法之后,我以为该线程就结束了,剩余的代码不执行了,后来在写demo的时候发现测试结果怎么也不正确,一调试发现condition.await()后面的代码执行了。
所以,await()方法只是让线程停止了执行,并且释放了锁,在使用signal()重新唤醒该线程后,线程会接着执行,并不是重新从头执行。
(谨记!!!!)
今天在学习java中的condition的时候,遇到一个问题。(最后发现还是基础不行啊~)
在使用condition.await()方法之后,我以为该线程就结束了,剩余的代码不执行了,后来在写demo的时候发现测试结果怎么也不正确,一调试发现condition.await()后面的代码执行了。
所以,await()方法只是让线程停止了执行,并且释放了锁,在使用signal()重新唤醒该线程后,线程会接着执行,并不是重新从头执行。
(谨记!!!!)