Ana*_*and 11 java multithreading synchronized thread-sleep
我已经读过,Thread.sleep()
它将暂停当前运行的线程指定的时间,之后它将返回runnable状态,等待它运行.
此外,如果从synchronized
上下文调用,sleep()
则不会释放它所持有的锁.所以我想知道什么时候会释放锁.如果线程处于休眠状态,永远不会有机会运行,那么它将始终保持锁定,然后其他线程如何进入同步方法/块.
我不确定我是否提出有效的问题.但请帮帮我.
NPE*_*NPE 17
所以我想知道什么时候会释放锁.
它将在从synchronized
块退出时释放锁,而不是更早.
如果线程处于休眠状态,永远不会有机会运行,那么它将始终保持锁定,然后其他线程如何进入同步方法/块.
很简单,其他线程将无法输入与睡眠线程相同的对象上同步的代码.
总而言之,Thread.sleep()
从synchronized
块中调用可能不是一个好主意.
归档时间: |
|
查看次数: |
12656 次 |
最近记录: |