Почему бы не использовать полный список выполняемых потоков, в отличие от просто потоков, которые работают, но не работают? - PullRequest
0 голосов
/ 11 мая 2011

Я рассматриваю концепции многопроцессорной обработки и пытаюсь найти причину, по которой используется список готовности , который содержит все запущенные потоки, которые не работают, в отличие от список всех запущенных потоков, где заголовок структуры данных является запущенным потоком (ами)?

Спасибо за ваше мнение.

РЕДАКТИРОВАТЬ: Позвольте мне уточнить. Насколько я знаю, пакеты потоков используют готовый список для идентификации тех процессов, которые готовы к запуску, в то время как запущенный процесс идентифицируется отдельной переменной. Почему бы им просто не включить запущенные процессы в структуру данных готового списка с запущенным потоком во главе структуры, что делает пакет потока включающим все. Вызовет ли многопроцессорность проблемы в этой схеме проектирования?

1 Ответ

2 голосов
/ 11 мая 2011

Поскольку поток может работать только на одном процессоре (ядре) одновременно. Список (на самом деле очередь) потоков, готовых к запуску, используется главным образом планировщиком, когда он ищет, какой поток должен запускаться; если поток уже запущен на одном процессоре, он не может быть запущен одновременно на другом процессоре, поэтому планировщик не хочет посмотреть на него (в то время - когда-то позже, когда он не работает и имеет право на запуск снова, он будет заботиться об этом снова ...)

...