AQS的enq方法中的compareAndSetTail

发布时间 2023-08-31 18:40:04作者: soi

 

 1)比较和替换的都是地址,比较expecttailoffset的内容(地址)是否相等,相等后让tailoffset存储update(地址)的内容,而不是将tailoffset指向的内容,替换为update指向的内容。

2)大部分时候如果truetailoffsetexpect是相等的,但忽略了他们只是内容(此处指向的对象相同),以前我经常当成把update的内容复制到expect里面,如果没有再次使用expect虽然这么理解错了,但不影响什么,但这里t在下面再次被使用了,所以开始就一致没转过弯来。就是因为这里其实是将updaet内容复制到tailoffset中而不是expect中。