Синхронне і асинхронне

все просто і банально. Ви переплутали поняття логіки і поведінки.

синхронний запит - відповідь синхронізований із запитом: т. е. поки немає відповіді, яка запитує сторона не виконуватиме далі ніяких дествий

асинхронний - запит надіслано, і програма стала виконувати свої дії далі, не чекаючи відповіді на запит (відповідь може прийти в будь-який момент або взагалі не прийти) - т. е. грубо кажучи, запит і відповідь не синхронізовані

PS і так - я програміст

У разі async процеси виконуються паралельно, т. Е. Незалежно один від одного, т. Е. Асинхронно.
Що тут незрозумілого?

Досить подивитися на значення «синхронного чогось»: синхронного двигуна, синхронного плавання. У плавання на швидкість все плавці теж пливуть одночасно, але руками махають асинхронно.

додам:
Ті, у кого підриває мозок, плутають значення термінів «паралельний» і «синхронний». Якщо два процеси виконуються паралельно вони не обов'язково синхронні. Синхронне плавання називається так тому, що учасники виконують одні і ті ж дії строго одночасно. При цьому якби вони робили одне й те саме, але, скажімо, з різною швидкістю, тоді це було б паралельне, але вже не синхронне плавання.

Синхронність / асинхронність - це завжди послідовність завдань, сама послідовність жорстка і завжди виконується один за одним, але ми або самі чекаємо завершення - запускаємо наступну, або нам в якийсь момент приходить «о, я завершився, давайте далі». прив'язка

Паралельність - це коли ми беремо пачку і виконуємо. Ніхто не париться про те, що після чого, паралельність на це не впливає.

Паралельність - про виконання. Синхронність - про те, як розуміємо, що потрібно наступну робити.

Аналогії є в залозі / протоколах. Є протоколи паралельні / послідовні - IDE / SATA. Є протоколи синхронні (є синхросигнал і ми видаємо наступний блок даних по ньому, вважаючи, що попередні оброблені) і асинхронні. Коли «видали - дочекалися відповіді про отримання - видали далі».

Шурик, навіщо ти мені це пояснюєш? Я знаю, в якому сенсі використовуються ці терміни. Мій поінт в тому, що терміни тупі. Нехрен послідовне називати синхронним.

Мозок зараз вже не виносить. Мабуть, звик. Спочатку, так, була деяка плутанина в тому, який виклик вважати синхронним, а який - асинхронним. Напевно, дійсно треба краще розуміти низкоуровневую частина, щоб це виглядало природно; без цього вибір термінів і правда здається не дуже вдалим (хоча, повторю, плутанини у мене вже не виникає).

Ілля, справа в тому, що «синхронно» не означає «одночасно».
У техніці синхронізовані процеси виконуються як завгодно - і паралельно, і послідовно.
Синхронність визначається тільки наявністю якоїсь тимчасової прив'язки одного процесу до іншого.
У нашому випадку:
1) процес запускається строго після того як завершиться попередній - синхронізація на обличчя;
2) процес може запуститися в будь-який момент, незалежно від того, завершився попередній чи ні - асинхронна роботи.

Це в побутовому сенсі синхронність і одночасність тотожні, а в інженерних дисциплінах - немає.

Я помітив, що в розмовах з колегами ми зазвичай використовуємо терміни «блокуючий», «Не блокуючий» і «виконується в тлі».

Мозок залишається на місці якщо під словом синхронність розуміти узгодженість у часі, а не одночасність виконання.

«Синхронний» процес - це коли його просування активізується якимось зовнішнім імпульсом. Тобто, процеси синхронні з цими імпульсами, а не один з одним. Термін використовується правильно.

Тим не менш, не можу до кінця виключати, що це не невдалий вибір терміна, а просто відносно нове (або спеціальне) значення слова, що не зустрічається в загальномовних словниках.

Ще, мені бачиться деяка неточність в правилі «навпаки», про який ви пишете: асинхронна (завантаження сторінки і скрипта) не означає, що завантаження буде проводитися синхронно (в значенні «одночасно») в строгому розумінні: почнеться вона, може, і одночасно (теж не факт), а закінчиться - як доведеться. Т. е. «Асинхронність» вказує на відсутність взаємозалежності. Хоча як емпіричне правило воно досить симпатично :)

Я думаю все пішло з теорії передачі даних, а саме через так назиааемого біта (сигналу) сінхранізаціі. Він використовувався для узгодження приймача і передавача. При цьому всі дані передавалися послідовно. Звідси можливо і вийшов жаргонізм - синхронна передача.

Я так розумію, що «синхронне плавання» у Іллі ніяких питань не викликає. Щоб відволіктися від дівчат в купальниках, припустимо, що ви маршируєте в строю. Сенс синхронності полягає в тому, що фаза, швидкість і тривалість ваших рухів повинні бути синхронізовані з усім строєм. Т. е. Ви, якби йшли самі по собі, могли б, наприклад, йти швидше, але змушені йти в загальному ритмі. Якщо уявити час дискретним (як в комп'ютері), то виходить, що в кожен момент часу, ви або наздоганяєте, або чекаєте, коли інші вас наздоженуть, т. Е. Ви весь час синхронізуєте. Тим, кому здається, що синхронність - це паралельність, замініть лад на «хвилю», яку створюють вболівальники на стадіоні або, наприклад, оркестр. Сенс не змінюється, синхронність зовсім не означає паралельність, а означає узгодженість. Посилка повідомлення і очікування відповіді, це окремий випадок синхронності. Якщо ви запускаєте паралельно дві програми, робота яких ніяк не узгоджена, то тут немає синхронності.

имхо звичайне некоректне використання українських словоформ (часто зустрічає насправді явище в термінології різних професійних областей, як не дивно) - «асинхронний» (несинхронно) це насправді «асинхронізованому» (несинхронізованих) - запит, асинхронізованому з іншим запитом - тобто виконання одного запиту не залежить від виконання іншого. А «синхронний» має на увазі «синхронізований» - тобто виконання одного запиту тим чи іншим чином залежить від виконання іншого на єдиній часовій шкалі (грецький префікс syn- означає «разом», «з» - і сам по собі не має значення єдності, паралельності або будь-якої співзалежності). грубо кажучи, їх виконання залежить від часу спільно, а не як попало.