Форум: "WinAPI";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];
ВнизЗдадержка Найти похожие ветки
← →
Юрий Зотов (2001-12-21 21:39) [8]> panov © (21.12.01 21:21)
Поймите, ведь процессор ВСЕГДА загружен на 100%. Что значит, например, "загружен на 50%"? Что он, по полкоманды выполняет, что ли? Нет, конечно. Простаивает половину времени? Тоже нет, простаивать он тоже не умеет. Холостые циклы крутит? Так это тоже 100%-я загрузка.
А значит это, что в течение НЕКОТОРОГО интервала времени процессор 50% времени обслуживал ядро самой системы, а другие 50 - некие прикладные (с точки зрения ядра) задачи. Заметьте - "в течение НЕКОТОРОГО интервала времени" - того интервала, с периодичностью которого измеряется загруженность процессора.
То же самое и здесь. Процессор будет загружен на 100%, но только В ТЕЧЕНИЕ ОДНОГО ВИТКА ЦИКЛА И НЕ БОЛЕЕ КВАНТА ВРЕМЕНИ, ОТВЕДЕННОГО ДАННОМУ ПОТОКУ. А потом дело дойдет до ProcessMessages, программа обработает очередь сообщений и все пойдет по новой - пока не кончится квант. А по его окончании CPU будет отдан другой программе.
И даже если вынести цикл в другой поток, то загрузка процесора все равно будет 100% - но тоже в пределах одного кванта. Разница лишь в том, что при этом сообщения будут обрабатываться программой как бы одновременно с циклом. Точнее, программа сможет обрабатывать сообщения не в конце витка цикла, а в другом кванте - то есть, чаще. Вот и все.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c