在课堂上,我的老师详细说明了代码中关键部分的数量所需的锁数。假设链接列表包含操作addNode(), deleteNode(), size()++, size()--
。这两个过程需要多少个锁。一两个?
在课堂上,老师像这样包装代码:
过程1
getLock(lock1)
deleteNode()
getLock(lock2)
size()--
releaseLock(lock2)
releaseLock(lock1)
过程2
getLock(lock1)
addNode()
getLock(lock2)
size()++
releaseLock(lock2)
releaseLock(lock1)
这里真的需要两个锁吗?我认为锁2是不必要的,因为它已经在锁周围了。