А это ведь одна из фундаментальных вещей в ИТ, однако мэйнстрим словно нарочно придумывает такие абсурдные названия.
Ну можно же было вместо sync/async говорить, например, блокирующий I/O или "overlapped" I/O, а самое простое -- последовательный или "конкурентный" (concurrent).
Знаете почему так? Потому что львиная доля программистов не обучалась в хороших университетах, и их понимание computer science равно абсолютному нулю :)
"Why the fuck do we let people that have no computer science backgrounds write code? Unacceptable!"
Erik Meijer, святой cs
Я немножечко стараюсь этот пробел ликвидировать, и остался уже один такой в русской айтишке. Ни при каких условиях не скачусь во все эти ваши веб-фреймворки и прочую технологическую ересь (пиши спокойно миддлом всю жизнь на пыхапы :), а кому не нравится, идите
И дальше в Школе буду развивать исключительно академические темки, а тех, кто прошёл все мои курсы, постепенно буду, принуждать :) к профильной математике ("гомотопическая теория типов как язык программирования"). Вы в результате получите такое космическое мышление, к которому и близко не приблизитесь за десятки лет практики программирования.
И, да, в современном мире это уже андеграунд.
P.S. Кто у меня проходил трек по параллельным вычислительным моделям, только посмеётся над такими вопросами: разбираем всё это на научной базе, встраиваем в голову соответствующую думательную машинку.
Напомню, что синхронное программирование -- это программирование в рамках направленного графа потоковых объектов. Потоковый объект может выполнить свои вычисления только после того, как считает по одному элементу из каждого из своих входных потоков. Из этого естественно следует, что каждый потоковый объект на графе синхронизирован с любым другим. Потоковому объекту допустимо опережать в вычислениях своих преемников на графе (которым он передаёт данные), но он не может опережать своих предшественников (от которых ему поступают данные).