Sobes.tech
Junior — Middle

Ինչպե՞ս տարբերել սինխրոնային զանգերը անսինխրոնայիններից և ինչ են նրանց հիմնական տարբերությունները։

sobes.tech AI

Պատասխան AI-ից

Синхронные вызовы блокируют выполнение программы до получения результата, то есть код выполняется последовательно. Асинхронные вызовы позволяют программе продолжать работу, не дожидаясь ответа, что повышает эффективность при работе с операциями ввода-вывода или сетевыми запросами.

Пример на Java с использованием CompletableFuture:

import java.util.concurrent.*;

public class AsyncExample {
    public static void main(String[] args) throws Exception {
        CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
            // имитация долгой операции
            try { Thread.sleep(1000); } catch (InterruptedException e) {}
            return "Результат";
        });

        System.out.println("Ожидание результата...");
        // здесь можно выполнять другие задачи

        // получение результата (блокирует, если результат еще не готов)
        String result = future.get();
        System.out.println("Получено: " + result);
    }
}

В этом примере асинхронный вызов позволяет не блокировать главный поток, пока выполняется долгий процесс.