2015-11-25 1 views
0

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

Пример: выполнение команды ls в linux, возможно, ..... 1 сек. Но когда я вывел несколько тысяч команд ls одновременно, я заметил, что некоторые из процессов не запущены, и для этого требуется очень много времени.

Почему это так? И как мы можем обойти это?

Заранее спасибо.

UPDATE:

Я сделал ps, и увидел, что несколько из ls команд были в состоянии D<. Я немного проверил и понял, что это Беспрерывный Сон. Что это? И когда это произойдет? Как этого избежать?

+1

Нерест процесс не является бесплатным. –

ответ

0

Количество процессов или потоков, которые могут выполняться одновременно, ограничено количеством ядер на вашем компьютере.

Если вы создаете тысячи процессов или потоков одновременно, ядро ​​может одновременно запускать «n» (где n равно числу доступных ядер), некоторые из них должны будут ждать, чтобы их планировали.

Если вы хотите запускать больше процессов или потоков по-настоящему одновременно, вам необходимо увеличить количество доступных ядер в системе (например, добавив процессоры, включив гиперпотоки, если они доступны).

Смежные вопросы