AbstractQueuedSynchronizer的Node內部類中,對volatile Node prev成員變量獲取方法predecessor()如下 final Node predecessor() throws NullPointerException { Node p = prev; if (p == null) throw new NullPointerException(); else return p; }在源碼中,這里對volatile類型的成員變量prev的返回,是先把他賦值給一個中間變量p,然后拿p返回。這種設計在AQS的源碼中很多地方都有涉及到,包括在其它源碼中也經??吹綄olatile類型的變量先賦值給另外一個變量,然后把這個變量返回.這樣設計的目的是什么?
添加回答
舉報
0/150
提交
取消