Сколько лет занимаюсь программизмом, столько лет наблюдаю, как асинхронность сносит мозг простым людям. Всем все время хочется верить, что от этого есть какая-то большая польза
( Read more... )
Перефразирую вопрос. Может быть, я туплю... Но не могу понять, почему при асинхронности не тратится время на переключение процессора?... Ну или почему при синхронности обязательно тратится сколько-то заметно больше...
При вменяемой реализации, у синхронности может быть меньше latency, но не особо меньше "пропускная способность". В очень отдельных случаях, при дофига откатах транзакций, могут быть проблемы. Но в любом случае, такого быть не должно...
Если каждая запись мэпная, то БД джесонная, небось.
А остальное не понял. После трая в фигурных скобках, надо думать, то, что траится, а в круглых что за фигня? И где catch, что будет если запрос навернется? Какой смысл тогда в t.join()? По-каковски это?
А, понял. Но почему так важно автоматически закрывать открытые ресурсы вроде файлов или коннекшнов, все равно не доходит. Как и на сколько это повысит перфоманс большой системы - вопрос тонкий. А для маленькой это и вовсе безразлично.
Обработка прерываний - совсем другое дело, прерывания действительно важны. Но именно это в данном примере полностью игнорируют.
Странный вопрос. Незакрытый коннекшн - висящий коннекшн. Неснятые блокировки, незавершенные транзакции, неоконченные операции... В данном случае не прерывания, а исключения.
Там всё правильно написано. В join проверяется выполнилась ли таска. Если да, выходим и идёт дальше, если нет - освобождаем поток для других целей. Потом когда таска закончится и получим внешний ивент, всё пробуждается и продолжает выполнение.
Comments 26
Reply
Reply
Reply
Reply
Reply
Может быть, я туплю...
Но не могу понять, почему при асинхронности не тратится время на переключение процессора?...
Ну или почему при синхронности обязательно тратится сколько-то заметно больше...
При вменяемой реализации, у синхронности может быть меньше latency, но не особо меньше "пропускная способность".
В очень отдельных случаях, при дофига откатах транзакций, могут быть проблемы.
Но в любом случае, такого быть не должно...
Reply
А остальное не понял. После трая в фигурных скобках, надо думать, то, что траится, а в круглых что за фигня? И где catch, что будет если запрос навернется? Какой смысл тогда в t.join()? По-каковски это?
Reply
t, конечно, join-ится категорически неправильно.
Reply
Обработка прерываний - совсем другое дело, прерывания действительно важны. Но именно это в данном примере полностью игнорируют.
Reply
Незакрытый коннекшн - висящий коннекшн. Неснятые блокировки, незавершенные транзакции, неоконченные операции...
В данном случае не прерывания, а исключения.
Reply
Reply
Нет, join ждет результата (или выбрасывает исключение при ряде условий).
Reply
Reply
Reply
Leave a comment