Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#`Interlocked.Exchange(Object,Object):Object`的Java等价物是什么?_Java_C#_Locking_Interlocked - Fatal编程技术网

C#`Interlocked.Exchange(Object,Object):Object`的Java等价物是什么?

C#`Interlocked.Exchange(Object,Object):Object`的Java等价物是什么?,java,c#,locking,interlocked,Java,C#,Locking,Interlocked,C#Interlocked.Exchange(Object,Object):Object的Java等价物是什么?Java中有没有一种方法可以在单个原子步骤中不加锁地执行以下操作:1)本地存储变量的引用2)为同一变量设置另一个引用?据我所知,没有任何操作可以对任意变量执行此操作。。。但这就是该类型的用途: private AtomicReference<String> stringReference; ... String oldValue = stringReference.ge

C#
Interlocked.Exchange(Object,Object):Object
的Java等价物是什么?Java中有没有一种方法可以在单个原子步骤中不加锁地执行以下操作:1)本地存储变量的引用2)为同一变量设置另一个引用?

据我所知,没有任何操作可以对任意变量执行此操作。。。但这就是该类型的用途:

private AtomicReference<String> stringReference;

...

String oldValue = stringReference.getAndSet(newValue);
私有原子引用stringReference;
...
字符串oldValue=stringReference.getAndSet(newValue);

您假定
互锁
不使用锁。有消息来源吗?没有。我会让@jon skeet回答你的问题;-)你会找到详细的解释,好的。我从你的问题中读到你认为是的。