Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.

@bookjava
🔥 Разбираем CompletableFuture в Java: Асинхронность без боли Всем добрый вечер! Сегодня расскажу про CompletableFuture — мощный инструмент для работы с асинхронными операциями в Java. Если вы хотите избавиться от блокирующего кода и сложных коллбэков, этот пост для вас! 🤔 Что такое CompletableFuture? Это часть java.util.concurrent, позволяющая писать асинхронный код в декларативном стиле, без создания сложных цепочек Thread и ExecutorService. 🚀 Базовый пример использования Допустим, у нас есть задача загрузить данные с сервера. Как это сделать асинхронно? import java.util.concurrent.CompletableFuture; public class AsyncExample { public static void main(String[] args) { CompletableFuture.supplyAsync(() -> { // Имитация долгого запроса sleep(2000); return "Данные загружены"; }).thenAccept(result -> System.out.println("Результат: " + result) ); System.out.println("Задача запущена, ждем результат..."); sleep(3000); // Чтобы main не завершился раньше времени } private static void sleep(int millis) { try { Thread.sleep(millis); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } 🔍 Разбираем код 1️⃣ supplyAsync() — выполняет операцию в фоновом потоке. 2️⃣ thenAccept() — получает результат и выполняет код после завершения. 3️⃣ Главный поток продолжает работать, не блокируя выполнение. 🛠 Расширяем функционал Можно комбинировать задачи: CompletableFuture.supplyAsync(() -> "Привет, ") .thenApply(greeting -> greeting + "мир!") .thenAccept(System.out::println); ✅ thenApply() изменяет данные перед следующим шагом. ✅ thenAccept() выполняет финальную операцию. 📌 Где использовать? 🔹 Запросы к API без блокировки 🔹 Асинхронная обработка данных 🔹 Параллельные вычисления 👉 @BookJava
Если у вас установлено приложение,
вы можете сразу перейти в канал