Sergey Mereutsa wrote:
Так вот. Асинхронность, скажу я вам, штука зело вкусная, ежели её
применять правильно. Особенно, когда у тебя работа с девайсом, у
которого на борту 4 войсовых процессора и 30 войсовых каналов, которые
ты в цикле опрашиваешь и вся работа с которыми - это работа с
событиями на этих каналах.
Но - как же без этого - есть у неё одна бааальшая
ж%па при работе в многопоточной среде - в виде кошмара синхронизации
тредов, запутанности и непонятности для простого человеческого
процесса мышления.
Начал за здравие, кончил за упокой.
Асинхронность ввода вывода как раз позволяет уменьшить количество
потоков и избавится от кошмарной синхронизации.
Было: первый поток работает с железом, второй работает в БД.
Стало: один поток работает и с железом и с БД.
rtfm event-driven programing
Минус в том, что в таком подходе усложняется код из за необходимости
мыслить в терминах теории конечных автоматов и сложности с декомпозицией.
А без многопоточности в эпоху мультиядерности
оно нафиг никому не впилось.
Это ты суперсервер так ловко подколол ? :)