我试图了解线程安全。想象一下我实现了一个简单的链表(只是我熟悉的一个例子),我有一个从列表中删除给定节点的函数。我被告知了这个功能
int CompareAndSwap(int *address, int oldvalue, int newvalue);
这是我必须用来确保线程安全的唯一方法,我能想象如何使用的唯一方法是发送 oldvalue 和 newvalue 节点的内存地址,但是从节点指针转换为 int 会失去精度并导致编译器错误所以很明显我用错了。
有人可以给我一个在这种情况下如何使用它的例子吗?谢谢。