Sergey Mereutsa wrote:

Так вот. Асинхронность, скажу я вам, штука зело вкусная, ежели её
применять правильно. Особенно, когда у тебя работа с девайсом, у
которого на борту 4 войсовых процессора и 30 войсовых каналов, которые
ты в цикле опрашиваешь и вся работа с которыми - это работа с
событиями на этих каналах.

Но - как же без этого - есть у неё одна бааальшая
ж%па при работе в многопоточной среде - в виде кошмара синхронизации
тредов, запутанности и непонятности для простого человеческого
процесса мышления.

Начал за здравие, кончил за упокой.
Асинхронность ввода вывода как раз позволяет уменьшить количество потоков и избавится от кошмарной синхронизации.
Было: первый поток работает с железом, второй работает в БД.
Стало: один поток работает и с железом и с БД.
rtfm event-driven programing

Минус в том, что в таком подходе усложняется код из за необходимости мыслить в терминах теории конечных автоматов и сложности с декомпозицией.

А без многопоточности в эпоху мультиядерности
оно нафиг никому не впилось.

Это ты суперсервер так ловко подколол ? :)

Ответить