Java - 静态方法的可重入WriteLock

时间:2013-08-29 15:44:03

标签: java multithreading thread-safety reentrantlock

如何在WriteLock方法上使用static?这就是我所拥有的:

m_unitLock = new ReentrantReadWriteLock();
m_unitReadLock = m_unitLock.readLock();
m_unitWriteLock = m_unitLock.writeLock()

static List<unit> units = new ArrayList<Unit>();
...
public static addUnit(){
  m_unitWriteLock.lock(); // can not use this inside a static method
  units.add(unit);
  m_unitWriteLock.unlock();
}

m_unitWriteLock定义为静态是正确的方法吗?你对这种情况的建议是什么? TNX。

1 个答案:

答案 0 :(得分:2)

是的,为什么不呢?

如果方法是静态的,那么锁也必须是静态的。 问题是:方法是否需要是静态的?但这取决于你要解决的问题。