【发布时间】:2014-06-23 05:35:14
【问题描述】:
假设我有一个线程 T,它持有一个资源 R。如果我在当前线程(即 T)上调用 Thread.sleep(),它会在去之前释放资源 R(让其他线程使用它)吗?睡不睡? 或者它将持有该资源,并在它醒来时再次使用资源 R 并在完成工作后释放它?
【问题讨论】:
-
您能否更具体地说明您的资源示例
-
一般来说,没有。进入睡眠状态时不会释放任何资源。
-
@JigarJoshi,通常我会问同样的问题,但因为我知道 sleep() 不会关闭或释放 anything,所以这并不重要案子。程序员需要知道的关于 sleep(n) 的所有信息是,它将阻塞调用者,直到发生中断,或经过 n 毫秒(以较早者为准)。除此之外,它不会做任何其他事情。
标签: java multithreading concurrency