Discuss / Java / 还是有个地方不太理解,求解惑

还是有个地方不太理解,求解惑

Topic source

浪过扬帆

#1 Created at ... [Delete] [Delete and Lock User]

为什么获取写锁那行代码要用局部变量呢?

如果再写个方法来获取写锁,那么由于写锁是局部的,所以实际上是2个不一样的锁,也就是说可以2个线程同时写?

额,不知道是不是理解错了

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

锁是属于线程的,当然必须是局部变量,否则别的线程就能访问这个线程的锁了

写锁互斥,一个线程获取到了,另一个线程就只能在stampedLock.writeLock()等着。

浪过扬帆

#3 Created at ... [Delete] [Delete and Lock User]

感谢廖大,原来我把这个加锁和上一节ReadWriteLock的那两个方法给搞混了

PBC

#4 Created at ... [Delete] [Delete and Lock User]

不管读写,是不是都是互斥的?因为都是达到悲观锁的作用

虽然用的是局部变量,但都是stampedLock这一个对象的,除非new了并操作了多个Point实例

不知道是不是这样理解的

Red

#5 Created at ... [Delete] [Delete and Lock User]

就是属于线程的,如果是全局变量会乱套


  • 1

Reply