Почему «синхронный» значит «идущий один за другим» в контексте программирования ?
Почему в контексте программирования «синхронный» — это «идущий один за другим» ? Само слово «синхронный» приводит к некому замешательству, ведь обычно оно значит «одновременно».
3 года назад
Ivan Gagarinov
Ответы
Путаница с именованием действительно есть, так как понятия синхронный и асинхронный в программировании означают не совсем то же, что в обычной жизни. Синхронный в программировании — это значит, что код выполняется синхронно с основным потоком программы. Например:
В примере выше функция syncFunc
— это синхронная, то есть обычная функция. Функция main()
представляет собой основную функцию программы, в ней вызывается функция syncFunc()
. Благодаря тому, что функция syncFunc
синхронная, то работа функции main
будет длиться не меньше, чем работа функции syncFunc
. Если функция syncFunc
будет выполняться 3 секунды, то и main
будет выполняться не меньше 3 секунд, что логично, ведь внутри main
код ждет, пока выполнится syncFunc
. Если выполнение syncFunc
увеличится, например, на 2 секунды, то и работа main
увеличится на 2 секунды. То есть время работы функций syncFunc
и main
синхронно.
Теперь пример с асинхронной функцией:
Теперь main
вызывает асинхронную функцию asyncFunc
и не дожидается выполнения этой функции, сразу печатается "End!". То есть время работы asyncFunc
никак не влияет на время работы main
. Если asyncFunc
увеличится на 3 секунды, то время выполнения main
не увеличится на 3 секунды.
3 года назад
Ivan Gagarinov
Можно сказать, что код будет выполнятся синхронно по мере его чтения движком, обработки. Еще, особенность синхронного кода заключается в том, что выполнение программы останавливается, пока блок кода не завершится. Это означает, что если у вас есть долгий цикл, который выполняется в основном потоке, то весь интерфейс программы будет заблокирован до тех пор, пока цикл не завершится. И наоборот, асинхронный код будет выполнен программой через какой-то промежуток времени после его обработки.
2 года назад
Aleksey