История изменений
Исправление
arturpub,
(текущая версия)
:
У тебя все вопросы поставлены так, что либо однозначно не ответишь, либо похоже на поток сознания.
Если по-отдельности смотреть, то асинхронка это когда ты общаешься через очереди событий (с любой полезной нагрузкой), а блокирование, как ты его употребляешь, это особенность некоторых вызовов ядра, чтобы не мутить асинхронку по дефолту. В случае сокет-дескриптора очереди находятся в ядре и сообщения ты получаешь/передаешь через замочную скважину полл-селекта и рид-врайт.
А если у тебя например два потока асинхронно общаются, то две атомарные очереди у тебя будут явно присутствовать, и ты будешь лочить их, когда надо сунуть или вынуть элемент с к-л стороны. При этом один поток может насувать элементов другому и сесть прямо тут ждать, пока он все довыполнит, чтобы синхронизироваться. Это будет аналог блокирующего вызова в ядро.
Исходная версия
arturpub,
:
У тебя все вопросы поставлены так, что либо однозначно не ответишь, либо похоже на поток сознания.
Если по-отдельности смотреть, то асинхронка это когда ты общаешься через очереди событий (с любой полезной нагрузкой), а блокирование, как ты его употребляешь, это особенность некоторых вызовов ядра, чтобы не мутить асинхронку по дефолту. В случае сокет-дескриптора очереди находятся в ядре и сообщения ты получаешь/передаешь через замочную скважину полл-селекта и рид-врайт.
А если у тебя например два потока асинхронно общаются, то две атомарный очереди у тебя будут явно присутствовать, и ты будешь лочить их, когда надо сунуть или вынуть элемент с к-л стороны. При этом один поток может насувать элементов другому и сесть прямо тут ждать, пока он все довыполнит, чтобы синхронизироваться. Это будет аналог блокирующего вызова в ядро.