问题描述
例如有一个程序如下:Aa=newA();Ab=a;Ac=a;lock(b){}lock(c){}多线程执行的时候lock(b)的时候lock(c)能上锁么lock(b)的时候是对引用b上锁还是对引用A的值上锁
解决方案
解决方案二:
如果都是引用类型a,b,c都引用同一个地址你说呢
解决方案三:
是对引用A的值上锁,如果A是引用类型的话。多线程对用一个锁的操作会出现竞态。
时间: 2024-09-17 04:26:44
例如有一个程序如下:Aa=newA();Ab=a;Ac=a;lock(b){}lock(c){}多线程执行的时候lock(b)的时候lock(c)能上锁么lock(b)的时候是对引用b上锁还是对引用A的值上锁
解决方案二:
如果都是引用类型a,b,c都引用同一个地址你说呢
解决方案三:
是对引用A的值上锁,如果A是引用类型的话。多线程对用一个锁的操作会出现竞态。