假设我有以下代码
public class ContinueIfCannotLock implements Runnable
{
static List<LockingObject> lockObjects = new ArrayList();
@Override
public void run()
{
for(LockingObject obj : lockObjects)
{
synchronized ( obj )
{
// do things here
}
}
}
}
而 LockingObject 只是一个空类。还假设在这些线程开始之前,我们在 LockingObject 列表中有 100 个对象。那么,如果线程无法获取当前元素的锁,我该如何让线程继续访问列表中的下一个对象。这样就没有线程(至少在所有对象都没有被线程锁定之前)在循环内等待。
繁花不似锦
富国沪深
相关分类