如何从地址窃取2个MSB进行原子操作?我正在努力做一个单词CAS
一个例子
public class Node { long key; long value; Node lchild; // format is flag1,flag2,address Node rchild; // format is flag1,flag2,address } public void createNode() { Node n1 = new Node(); //this should create a node with format 0,0,address1 } public void setFlag1(Node n1) { Now the new address should be in format 1,0,address1 } public void setFlag2(Node n1) { Now the new address should be in format 0,1,address1 }
AtomicReference
如果我只需要一个额外的标志,可以使用.
AtomicStampedReference
可以使用,但它没有效率,因为它创建了一个包含timeStamp和引用的额外框.
在从指针窃取位时讨论了C中的类似问题