169 похожих чатов

Можете рассказать пожалуйста как реализуется асинхронность на уровне инструкций?

На уровне питонов, библиотек плюсов я понимаю, но вот как это под капотом выглядит? Совсем не понимаю. Может статьи какие-то есть, или хотябы видео.

11 ответов

42 просмотра

Если я правильно понял вопрос - никак. Асинхронности на уровне процессора не существует, но существуют потоки, которые работают независимо друг от друга. Именно на основе этого и реализуют асинхронность

2happy- Автор вопроса
Aleksandr
Если я правильно понял вопрос - никак. Асинхроннос...

Я понимаю, что напрямую async инструкций нет, но в итоге высокоуровневый код собирается в инструкции, которые вместе работают асинхронно. Наверное правильнее сформулировать - как устроены события. Как можно ожидать какое-то событие не блокируя весь поток.

2happy
Я понимаю, что напрямую async инструкций нет, но в...

Нет, просто когда нужно чего-то подождать, состояние функции сохраняется, а управление передаётся в диспетчер (event loop). Когда условие ожидания выполнено, диспетчер организует продолжение выполнения функции.

2happy
Я понимаю, что напрямую async инструкций нет, но в...

Это вопрос к конкретной реализации. Это могут быть полноценные отдельные потоки ОС или это некая внутренняя легковесная реализация внутри одного потока силами среды исполнения или компилятора, работающая например по таймеру.

s54820
Нет, просто когда нужно чего-то подождать, состоян...

Ну в .NETе этим похоже что занимаетмя CLR, сохраняя состояние прерванного кода куда нибудь

2happy- Автор вопроса
s54820
Нет, просто когда нужно чего-то подождать, состоян...

То есть на примере с сокетами в *nix я могу создать сокет, он сделает что-то, и сохранится в определенном состоянии. Потом приходит физический сигнал, и он вызывает функцию, которая возобновляет работу с сокетом и этим я получаю то, что мог что-то делать пока сокет ожидал ввод?

2happy
То есть на примере с сокетами в *nix я могу создат...

Тут вопрос "где ты мог что-то делать". Ты можешь вот с обычными сокетами создать сокет неблокирующий, сказать ему "отправляй" и что-то делать, пока оно там отправляется. А когда тебе нужен будет результат отправки, ты, конечно заблокируешься, если ещё не отправилось. Но в этот момент ты можешь не тупо висеть, а решить поделать что-то ещё.

2happy- Автор вопроса
s54820
Тут вопрос "где ты мог что-то делать". Ты можешь в...

я что-то не понимаю, а вопрос нормальный задать не могу. Пойду завтра что-то почитаю (если скиньте что-то, то буду благодарен), попробую скопировать, разобрать асинхронный код с си сокетами, тогда спрошу

2happy- Автор вопроса
s54820
Тут вопрос "где ты мог что-то делать". Ты можешь в...

ну, это вроде понятно, но я хотел 💥чего нибудь💥, а не совсем это

2happy
Я понимаю, что напрямую async инструкций нет, но в...

Создаются нити, которые диспетчеризуются с поправкой на конкретный язык *в питон уже асинк завезли что ли?

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Утра доброго. Просветите пожалуйста. Хочу сделать rest сервер на делфи. Посмотрел 3 фреймворка: dmvc, Mars, mormot. Ни в одном из них не упоминается ассинхронная обработка вхо...
Сергей Бычков
10
Как попросить stack install делать executable без .exe на винде?
Danila Danko
9
Карта сайта