- Что такое "неблокирование" concurrency и как он отличается от обычного concurrency с помощью потоков? Почему мы не используем неблокирующий concurrency во всех сценариях, где требуется concurrency? Есть ли накладные расходы для использования неблокирующих concurrency?
- Я слышал, что неблокирующий concurrency доступен на Java. Существуют ли какие-либо конкретные сценарии, где мы должны использовать эту функцию?
- Есть ли разница или преимущество использования одного из этих методов с коллекцией? Каковы компромиссы?
Пример для Q3:
class List
{
private final ArrayList<String> list = new ArrayList<String>();
void add(String newValue)
{
synchronized (list)
{
list.add(newValue);
}
}
}
против.
private final ArrayList<String> list = Collections.synchronizedList();
Вопросы больше с точки зрения обучения/понимания. Спасибо за внимание.