Чтение CLR через C # 2.0 (у меня сейчас нет 3.0 со мной)
Это все еще так:
Если в компьютере только один процессор, одновременно может работать только один поток. Windows должна отслеживать объекты потока, и очень часто Windows должна решить, какой поток запланировать следующим, чтобы перейти к ЦП. Это дополнительный код, который должен выполняться один раз каждые 20 миллисекунд или около того. Когда Windows заставляет ЦП прекратить выполнение кода одного потока и начать выполнение кода другого потока, мы называем это переключением контекста. Переключение контекста довольно дорого, потому что операционная система должна:
Итак, около CLR через C # 2.0, скажем, мы находимся на Pentium 4 2.4 ГГц 1 ядро без HT, XP. Каждые 20 миллисекунд? Если поток CLR или поток Java отображается на поток ОС только максимум 50 потоков в секунду может получить шанс на запуск?
Я читал, что переключение контекста здесь происходит очень быстро в микросекундах здесь, на SO, но как часто приблизительно (предположения в стиле амплитуды) говорят, что скромный 5-летний сервер Windows 2003 Pentium Xeon с одним ядром дает ОС возможность для переключения контекста? 20 мс в нужном месте?
Мне не нужны точные цифры, я просто хочу быть уверен, что это в нужной области, мне кажется, это довольно долго.