Понимание запуска нескольких команд параллельно в терминале - PullRequest
0 голосов
/ 28 апреля 2020

Согласно этой записи , мы можем одновременно запускать несколько команд в одном терминале, используя & между командами. Например:

$ sleep 4 & sleep 4 & sleep 4 & sleep 4

Приведенная выше команда завершится sh через 4 секунды на P C с одним ЦП, состоящим из 4 ядер. Предположим, что каждое ядро ​​имеет 2 потока, и в этом P C включена гиперпоточность, что означает, что мы можем выполнять 4 * 2 = 8 задач параллельно. Насколько я понимаю, мы можем одновременно запускать до 8 команд в этом P C, и каждая команда будет выполняться одним потоком. Но, например, если я изменю приведенный выше код на следующий

sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4 & sleep 4

, который имеет 24 sleep 4 команд, он все равно завершится sh через 4 секунды. Я не уверен, правильно ли я понимаю.

...