2016-09-23 8 views
2

Что такое Java-эквивалент для C# Interlocked.Exchange(Object, Object) : Object? Есть ли способ в Java выполнить следующие действия на одном атомном шаге без блокировки: 1) локально сохранить ссылку переменной 2) установить другую ссылку на ту же переменную?Что такое эквивалент Java для C# `Interlocked.Exchange (Object, Object): Object`?

+0

Вы принимаете 'Interlocked' не использует замок. Любой источник для этого? –

+1

Это не так. Я позволю @ jon-skeet ответить на ваш вопрос ;-) [Здесь] (http://www.albahari.com/threading/part4.aspx#_Interlocked) вы найдете подробное объяснение. – jeromerg

+0

Хорошо. Я читал из вашего вопроса, который, как вы думали, так и было. –

ответ

7

Там нет работы, чтобы сделать это для любой переменной, насколько я знаю ... но это то, что AtomicReference типа для:

private AtomicReference<String> stringReference; 

... 

String oldValue = stringReference.getAndSet(newValue); 

 Смежные вопросы

  • Нет связанных вопросов^_^