На уровне питонов, библиотек плюсов я понимаю, но вот как это под капотом выглядит? Совсем не понимаю. Может статьи какие-то есть, или хотябы видео.
Если я правильно понял вопрос - никак. Асинхронности на уровне процессора не существует, но существуют потоки, которые работают независимо друг от друга. Именно на основе этого и реализуют асинхронность
Я понимаю, что напрямую async инструкций нет, но в итоге высокоуровневый код собирается в инструкции, которые вместе работают асинхронно. Наверное правильнее сформулировать - как устроены события. Как можно ожидать какое-то событие не блокируя весь поток.
Нет, просто когда нужно чего-то подождать, состояние функции сохраняется, а управление передаётся в диспетчер (event loop). Когда условие ожидания выполнено, диспетчер организует продолжение выполнения функции.
Это вопрос к конкретной реализации. Это могут быть полноценные отдельные потоки ОС или это некая внутренняя легковесная реализация внутри одного потока силами среды исполнения или компилятора, работающая например по таймеру.
Ну в .NETе этим похоже что занимаетмя CLR, сохраняя состояние прерванного кода куда нибудь
То есть на примере с сокетами в *nix я могу создать сокет, он сделает что-то, и сохранится в определенном состоянии. Потом приходит физический сигнал, и он вызывает функцию, которая возобновляет работу с сокетом и этим я получаю то, что мог что-то делать пока сокет ожидал ввод?
Тут вопрос "где ты мог что-то делать". Ты можешь вот с обычными сокетами создать сокет неблокирующий, сказать ему "отправляй" и что-то делать, пока оно там отправляется. А когда тебе нужен будет результат отправки, ты, конечно заблокируешься, если ещё не отправилось. Но в этот момент ты можешь не тупо висеть, а решить поделать что-то ещё.
я что-то не понимаю, а вопрос нормальный задать не могу. Пойду завтра что-то почитаю (если скиньте что-то, то буду благодарен), попробую скопировать, разобрать асинхронный код с си сокетами, тогда спрошу
ну, это вроде понятно, но я хотел 💥чего нибудь💥, а не совсем это
Создаются нити, которые диспетчеризуются с поправкой на конкретный язык *в питон уже асинк завезли что ли?
Обсуждают сегодня