标签: java multithreading
我正在寻找java中的一种方法,通过它我们可以实现基于时间的java线程锁定或者可能是基于时间的中断。 考虑一下。
java线程调用以下函数,
private DATA getData() { DATA data; synchronized(dataLock) { data = fetchData() } return data }
现在假设对fetchData()的调用挂起,不返回。 有没有办法在此锁定(dataLock),或中断此线程?
答案 0 :(得分:5)
使用更灵活的Lock界面(例如ReentrantLock),可让您拨打tryLock(long time, TimeUnit unit)以防止永远等待。
ReentrantLock
tryLock(long time, TimeUnit unit)