Многопоточность против виртуального процесса - PullRequest
0 голосов
/ 13 марта 2011

Существует три типа модели потока управления: однопоточный, виртуальный процесс и многопоточный процесс.Вот что написано в Power Point, который я изучаю в форме

Виртуальные процессы.Это основано на однопоточной модели, но создает видимость параллельного выполнения.Компонент контроллера планирует выполнение других компонентов и дает им контроль.Планирование может выполняться периодически или на основе событий.Эта модель основана на логической декомпозиции действий на простые этапы, выполнение которых требует только коротких интервалов времени.

Я не мог этого понять и не мог понять разницу между многопоточным процессом и виртуальным движением.может ли кто-нибудь помочь?

РЕДАКТИРОВАТЬ здесь глава книги, в которой я упоминаю выше раздел формы http://www.mediafire.com/?ru82i0nvp12qw6t

Ответы [ 2 ]

1 голос
/ 13 марта 2011

Ваш виртуальный процесс выглядит для меня как программирование на основе событий.Гугл например' Потоки против событий ', первая ссылка , которую вы получаете, является довольно хорошим сравнением.

РЕДАКТИРОВАТЬ: Вот еще одно сравнение Я нашел в закладках.

1 голос
/ 13 марта 2011

Этот термин «виртуальный процесс» необычен, но на основании вашего описания я могу привести 2 реальных примера использования каждого из них.

Для многопоточности представьте, что у вас есть много данных в памяти и вы хотите выполнить некоторые вычисления на них ... вы можете разделить эти данные и получить отдельные потоки (по одному на ядро ​​ЦП, в идеале), одновременно работая над разными блоками данные. Таким образом, вычисления будут выполняться быстрее в зависимости от того, сколько потоков вы создадите.

Для «виртуального процесса» представьте, что вам нужно извлечь 20 файлов с удаленных серверов ... большая часть «работы» ЦП заключается в том, чтобы просто ждать, пока байты не поступят из удаленной сети. Создание отдельных потоков для загрузки каждого из этих файлов не приведет к более быстрому прибытию файлов. Во всяком случае, наличие дополнительных потоков, между которыми ОС должна постоянно переключаться (и это переключит LOT, потому что большую часть времени каждый поток просто скажет «я все еще жду», а затем уступит управление). Таким образом, в этом случае лучше иметь один поток, выполняющий всю загрузку, с циклическим циклом между каждой из задач загрузки для считывания входящих данных из их буферов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...