特征: 写写互斥、读写互斥、读读囲享
锁降级: 写线程获取写入锁或可以获取读取锁, 然后释放写入锁, 这样就从写入锁变成了读取锁, 从而实现锁降级的特征
结果分析:j的值还没读取到就返回了, 所以不能得到预期的结果
那么上面的例子该怎么改呢
- 两个方法都加上synchronize关键字修饰,这时候无论在读或写都要获取锁,但是这是┅种很浪费资源的写法, 有性能开销问题(不推荐)
写写互斥、读写互斥、读读共享可以通过多线程debug可以看出来 这里不做演示了, 提一下多线程debug操作注意的地方
在这里可以查看各个线程的运行情况