synchronized 内存语义:lock之后,同步代码块内的变量都从内存中取最新的,unlock之前,将线程的工作内存的东西都会更新到主内存。
而ReentrantLock 是如何实现synchronized的内存语义呢?
个人感觉:ReentrantLock源码里只是实现了一个锁的装置。并未涉及内存语义。难道所谓的内存语义是利用多线程间执行顺序来保证的吗?
嗯。不知道是自己哪里理解有问题。内存语义又没有办法用实验证明,请大牛提携一下!只是没钱,不好意思啊
synchronized 内存语义:lock之后,同步代码块内的变量都从内存中取最新的,unlock之前,将线程的工作内存的东西都会更新到主内存。
而ReentrantLock 是如何实现synchronized的内存语义呢?
个人感觉:ReentrantLock源码里只是实现了一个锁的装置。并未涉及内存语义。难道所谓的内存语义是利用多线程间执行顺序来保证的吗?
嗯。不知道是自己哪里理解有问题。内存语义又没有办法用实验证明,请大牛提携一下!只是没钱,不好意思啊