Сообщение Re[12]: Зачем нам асинхронность? от 08.08.2020 20:46
Изменено 08.08.2020 20:47 ononim
Re[12]: Зачем нам асинхронность?
_>>>Забавная статья. В ней всё абсолютно правильно, кроме первого абзаца (ты видимо только его и прочитал?), в котором автор радостно заявляет, что никаких ждущих потоков нет, и потом явно показывает их наличие в статье.
O>>А ты видимо из тех коментаторов статьи которые путают APC и DPC, да?
_>Ну раз ты так считаешь, что конечно же укажешь место в моих сообщениях, где я их спутал? )
В твоих нет, но в первых коментах к той статье там явно начали аргументировать что DPC — это обязательно поток, похоже коментатор исходил из предположения что DPC -это APC. Но это не так. APC — шедулится на поток, DPC шедулится на процессор.
O>>В статье объясняется что инициация асинхронной ио операции не требует постоянного выделения некоего потока для его обработки — ни в юзер моде ни в ядре.
O>>Тот поток который запустил асинхронную ио операцию волен делать что угодно, а не только ждать ее исполнения. К примеру он может запустить еще десяток-два таких же, но других, операций, потом помайнить немного биткоинов и потом лишь проверить результат исполнения запущенных ио операций. В этом-то и состоит асинхронность.
_>Нет, не может, потому как и в данной статье и в данной темке обсуждается не абстрактный асинхронный ввод-вывод в винде, а вполне конкретная реализация его из .net. И в ней для IOCP используется специальный пул потоков, который только этим и занимается.
Ну, в внутренностях дотнетов я не копенгаген — б-г миловал. Но можно предположить что количество потоков в этом пуле максимум — соразмерно колву логических CPU. То есть все еще можно запустить 100500 операций — а количество потоков в пуле от этого не вырастет, просто они их будут все по-очереди разгребать. Условие "IO операция != поток" вполне выполняется.
O>>А ты видимо из тех коментаторов статьи которые путают APC и DPC, да?
_>Ну раз ты так считаешь, что конечно же укажешь место в моих сообщениях, где я их спутал? )
В твоих нет, но в первых коментах к той статье там явно начали аргументировать что DPC — это обязательно поток, похоже коментатор исходил из предположения что DPC -это APC. Но это не так. APC — шедулится на поток, DPC шедулится на процессор.
O>>В статье объясняется что инициация асинхронной ио операции не требует постоянного выделения некоего потока для его обработки — ни в юзер моде ни в ядре.
O>>Тот поток который запустил асинхронную ио операцию волен делать что угодно, а не только ждать ее исполнения. К примеру он может запустить еще десяток-два таких же, но других, операций, потом помайнить немного биткоинов и потом лишь проверить результат исполнения запущенных ио операций. В этом-то и состоит асинхронность.
_>Нет, не может, потому как и в данной статье и в данной темке обсуждается не абстрактный асинхронный ввод-вывод в винде, а вполне конкретная реализация его из .net. И в ней для IOCP используется специальный пул потоков, который только этим и занимается.
Ну, в внутренностях дотнетов я не копенгаген — б-г миловал. Но можно предположить что количество потоков в этом пуле максимум — соразмерно колву логических CPU. То есть все еще можно запустить 100500 операций — а количество потоков в пуле от этого не вырастет, просто они их будут все по-очереди разгребать. Условие "IO операция != поток" вполне выполняется.
Re[12]: Зачем нам асинхронность?
_>>>Забавная статья. В ней всё абсолютно правильно, кроме первого абзаца (ты видимо только его и прочитал?), в котором автор радостно заявляет, что никаких ждущих потоков нет, и потом явно показывает их наличие в статье.
O>>А ты видимо из тех коментаторов статьи которые путают APC и DPC, да?
_>Ну раз ты так считаешь, что конечно же укажешь место в моих сообщениях, где я их спутал? )
В твоих нет, но в первых коментах к той статье там явно начали аргументировать что DPC — это обязательно поток, похоже коментатор исходил из предположения что DPC -это APC. Но это не так. APC — шедулится на поток, DPC шедулится на процессор.
O>>Тот поток который запустил асинхронную ио операцию волен делать что угодно, а не только ждать ее исполнения. К примеру он может запустить еще десяток-два таких же, но других, операций, потом помайнить немного биткоинов и потом лишь проверить результат исполнения запущенных ио операций. В этом-то и состоит асинхронность.
_>Нет, не может, потому как и в данной статье и в данной темке обсуждается не абстрактный асинхронный ввод-вывод в винде, а вполне конкретная реализация его из .net. И в ней для IOCP используется специальный пул потоков, который только этим и занимается.
Ну, в внутренностях дотнетов я не копенгаген — б-г миловал. Но можно предположить что количество потоков в этом пуле максимум — соразмерно колву логических CPU. То есть все еще можно запустить 100500 операций — а количество потоков в пуле от этого не вырастет, просто они результаты будут все по-очереди разгребать. Условие "IO операция != поток" вполне выполняется.
O>>А ты видимо из тех коментаторов статьи которые путают APC и DPC, да?
_>Ну раз ты так считаешь, что конечно же укажешь место в моих сообщениях, где я их спутал? )
В твоих нет, но в первых коментах к той статье там явно начали аргументировать что DPC — это обязательно поток, похоже коментатор исходил из предположения что DPC -это APC. Но это не так. APC — шедулится на поток, DPC шедулится на процессор.
O>>Тот поток который запустил асинхронную ио операцию волен делать что угодно, а не только ждать ее исполнения. К примеру он может запустить еще десяток-два таких же, но других, операций, потом помайнить немного биткоинов и потом лишь проверить результат исполнения запущенных ио операций. В этом-то и состоит асинхронность.
_>Нет, не может, потому как и в данной статье и в данной темке обсуждается не абстрактный асинхронный ввод-вывод в винде, а вполне конкретная реализация его из .net. И в ней для IOCP используется специальный пул потоков, который только этим и занимается.
Ну, в внутренностях дотнетов я не копенгаген — б-г миловал. Но можно предположить что количество потоков в этом пуле максимум — соразмерно колву логических CPU. То есть все еще можно запустить 100500 операций — а количество потоков в пуле от этого не вырастет, просто они результаты будут все по-очереди разгребать. Условие "IO операция != поток" вполне выполняется.