Java:基于时间的线程锁定

时间:2017-09-18 11:18:27

标签: java multithreading

我正在寻找java中的一种方法,通过它我们可以实现基于时间的java线程锁定或者可能是基于时间的中断。 考虑一下。

java线程调用以下函数,

private DATA getData() {
   DATA data;
   synchronized(dataLock) {
       data = fetchData()
   }
   return data
}

现在假设对fetchData()的调用挂起,不返回。 有没有办法在此锁定(dataLock),或中断此线程?

1 个答案:

答案 0 :(得分:5)

使用更灵活的Lock界面(例如ReentrantLock),可让您拨打tryLock(long time, TimeUnit unit)以防止永远等待。