Меня смущает термин асинхронный, когда он связан с программированием. По-видимому, в терминах программирования это означает, что оно определено как в словаре. Например, слово синхронный означает:
происходит одновременно; совпадающие по времени; современники; одновременно.
происходит с одинаковой скоростью и ровно вместе; повторяющиеся вместе.
Тем не менее, Wikipedia говорит:
"В программировании события асинхронные - это те, которые происходят независимо от основного потока программы. Асинхронные действия действия, выполняемые в неблокирующей схеме, позволяющие основной программе поток для продолжения обработки."
Не будет ли что-то "неблокирующимся" и которое позволяет "основной поток программы продолжать обработку", синхронизироваться или "возникать одновременно"? Похоже, что термин синхронный предполагает "неблокирующее" и асинхронное "блокирование". Почему термины, по-видимому, используются в обратном направлении, когда они связаны с программированием, или это имеет какое-то отношение к вычислениям нижнего уровня, которые я не понимаю?
Когда я использую синхронный вызов AJAX, я делаю следующее...
$.ajax({
url: somefile.php,
async: false,
success: {
...code that gets run on success...
}
});
...code that gets run after the ajax-success code runs...
При этом он фактически ожидает ответа перед запуском остальной части script, это действие блокировки. Тогда почему это называется синхронным, когда оно не синхронизируется с каким-либо другим процессом, а наоборот?