Ответ
Синхронность — это модель выполнения, при которой операции выполняются последовательно, одна за другой. Вызывающий код блокируется и ожидает завершения текущей операции, прежде чем перейти к следующей.
Для чего нужна:
- Простота понимания и отладки: Поток выполнения линейный и предсказуемый.
- Гарантия порядка: Операции выполняются строго в том порядке, в котором они записаны в коде.
- Контроль состояния: Упрощает управление общими данными, так как нет параллельного доступа.
Пример в Java:
// Синхронный вызов метода
int result = calculateExpensiveValue(); // Поток блокируется здесь
System.out.println("Результат: " + result); // Выполнится только после calculateExpensiveValue()
Недостаток: Низкая эффективность при операциях ввода-вывода (например, чтение файла, сетевой запрос), так как поток простаивает в ожидании, вместо выполнения другой полезной работы. Для решения этой проблемы используют асинхронное программирование или многопоточность.