Size: a a a

Telegram Developers

2020 November 12

11

1 1 in Telegram Developers
Асинхронный код в питоне выполняется у тебе в том же стеке что и синхронный )
источник

P

Phantom in Telegram Developers
1 1
Я вообще шарп не знаю, так краем уха слышал
Ну если не углубляться, то есть класс Task<T>, и кейворды async await, просто нужно чтобы метод возвращал Task<T>, и при вызове ты делал await, а вся магия происходит внутри
источник

P

Phantom in Telegram Developers
1 1
Асинхронный код в питоне выполняется у тебе в том же стеке что и синхронный )
Ну весь смысл асинхрона, выполнятся в одном потоке, если не ошибаюсь
источник

11

1 1 in Telegram Developers
Phantom
Ну если не углубляться, то есть класс Task<T>, и кейворды async await, просто нужно чтобы метод возвращал Task<T>, и при вызове ты делал await, а вся магия происходит внутри
Да как писать более-менее понятно, а вот что под коюапотом в шарпе я хз
источник

Dmitriy Тiutiunnyk in Telegram Developers
Phantom
Почему?
Представь, что мы пишем бота в телеге для ,где юзер отправляет чето , а бот обоабатывает input и возращает ответ,  асинхронный путь выглядит в данном случае так:

заводим event loop, ставящий задачи в очередь;
дергаем указанный callback, когда какая-то задача выполнилась;
обрабатываем этот event loop в один или несколько потоков.
Итак, представим себе, что callback - очень "тяжелая" функция, производит мощные расчеты и выполняется, например, секунду. Так вот, если наш event loop обрабатывается только одним потоком, и на сервер пришел один клиент, то в течение секунды наш сервер не сможет принимать входящие сообщения от других клиентов, пока event loop занят вычислением callback. Если event loop обрабатывается в 2 потока, то в таком случае два параллельно подключившихся клиента уже делают невозможным (на секунду) подключение третьего клиента. И так далее.
источник

11

1 1 in Telegram Developers
Phantom
Ну весь смысл асинхрона, выполнятся в одном потоке, если не ошибаюсь
Я челу выше ответил, он говорит что синхронность быстрее
источник

P

Phantom in Telegram Developers
1 1
Да как писать более-менее понятно, а вот что под коюапотом в шарпе я хз
Ну я тоже не особо знаю, книжку я пока что не дочитал)
источник

P

Phantom in Telegram Developers
Dmitriy Тiutiunnyk
Представь, что мы пишем бота в телеге для ,где юзер отправляет чето , а бот обоабатывает input и возращает ответ,  асинхронный путь выглядит в данном случае так:

заводим event loop, ставящий задачи в очередь;
дергаем указанный callback, когда какая-то задача выполнилась;
обрабатываем этот event loop в один или несколько потоков.
Итак, представим себе, что callback - очень "тяжелая" функция, производит мощные расчеты и выполняется, например, секунду. Так вот, если наш event loop обрабатывается только одним потоком, и на сервер пришел один клиент, то в течение секунды наш сервер не сможет принимать входящие сообщения от других клиентов, пока event loop занят вычислением callback. Если event loop обрабатывается в 2 потока, то в таком случае два параллельно подключившихся клиента уже делают невозможным (на секунду) подключение третьего клиента. И так далее.
Нихуя не понял
источник

Dmitriy Тiutiunnyk in Telegram Developers
блин зря писал
источник

11

1 1 in Telegram Developers
Я понял
источник

11

1 1 in Telegram Developers
Ну ты не пиши такие функции тяжёлые разбивай их
источник

P

Phantom in Telegram Developers
Dmitriy Тiutiunnyk
блин зря писал
Ну суть в том, что в любом случае у тебя работа будет выполнятся 3 секунд, но твой бот будет иметь возможность принимать и отвечать
источник

11

1 1 in Telegram Developers
Phantom
Ну суть в том, что в любом случае у тебя работа будет выполнятся 3 секунд, но твой бот будет иметь возможность принимать и отвечать
Не будет функция попадет в стек и будет выполнятся
источник

Dmitriy Тiutiunnyk in Telegram Developers
1 1
Ну ты не пиши такие функции тяжёлые разбивай их
ну так все равно вычисления одни и те же нужны для ответа юзеру
источник

V

Vitaly in Telegram Developers
Dmitriy Тiutiunnyk
ну так все равно вычисления одни и те же нужны для ответа юзеру
да, но еще нужны ресурсы на переключение контекста
источник

V

Vitaly in Telegram Developers
а если все синхронное в асинхронном окружении(сеть например) - то будет жопа
источник

P

Phantom in Telegram Developers
Суть в асинхронность в том, что если у тебя есть 3 задачи, которые будут выполнятся 3, 2, 1 секунды, то сперва свою работу закончит работа, которая будет занимать одну секунду, и ответ будет отправлен юзеру
источник

P

Phantom in Telegram Developers
Phantom
Суть в асинхронность в том, что если у тебя есть 3 задачи, которые будут выполнятся 3, 2, 1 секунды, то сперва свою работу закончит работа, которая будет занимать одну секунду, и ответ будет отправлен юзеру
Если я не ошибаюсь
источник

Y

Yntermench in Telegram Developers
Как же много определений у асинхронности, каждый понимает по-своему
источник

11

1 1 in Telegram Developers
Phantom
Суть в асинхронность в том, что если у тебя есть 3 задачи, которые будут выполнятся 3, 2, 1 секунды, то сперва свою работу закончит работа, которая будет занимать одну секунду, и ответ будет отправлен юзеру
Не совсем так, там зависит от приоритета задач промис это или коллбек, ивент браузера таймер или тд
источник