Избавляемся от NullPointerException в Java: чистый и масштабируемый подход

Проблема NullPointerException знакома каждому Java-разработчику. Первое, что приходит на ум – добавить != null. Это кажется быстрым решением, но в долгосрочной перспективе приводит к: Так можно ли решить эту задачу элегантнее? Для того, чтобы уйти от использования стандартной проверки на null мы можем выполнить несколько довольно простых шагов. Шаг 1. Часто встречаемые типы данных Перед … —Читать далее—

Loading

Механизмы CAS и FAA глазами Java разработчика

В данной статье мы рассмотрим механизмы обеспечения многопоточных вычислений CAS и FAA с точки зрения Java разработчика. Содержание статьи: Введение 1.1. Определение CAS и FAA 1.2. Обоснование важности атомарных операций1.3. Краткий обзор применения CAS и FAA в многопоточных приложениях CAS (Compare-and-Swap) 2.1. Описание механизма CAS 2.2. Примеры использования CAS в Java 2.2.1. AtomicInteger, AtomicLong и … —Читать далее—

Loading

ExecutorService в Java и примеры его применения.

ExecutorService – это интерфейс Java, который предоставляет удобный способ управления потоками исполнения. Он позволяет создавать пул потоков исполнения и выполнять задачи в этих потоках. Существует несколько ключевых реализаций ExecutorService: ThreadPoolExecutor ScheduledThreadPoolExecutor CachedThreadPoolExecutor ForkJoinPool Рассмотрим каждый из них детально с примером их использования. ThreadPoolExecutor ThreadPoolExecutor – это реализация интерфейса ExecutorService в Java, который предоставляет пул потоков … —Читать далее—

Loading

Как работает volatile в Java

java-volatile

Ключевое слово volatile в Java используется для обозначения переменных, которые могут быть изменены разными потоками. Оно гарантирует видимость изменений, сделанных одним потоком, другим потокам, а также упорядочивает обращения к таким переменным. Основная задача, которую решает ключевое слово volatile: Обеспечение видимости изменений: когда один поток изменяет значение переменной, все другие потоки немедленно видят это изменение. Часто … —Читать далее—

Loading