根据this post,我们可以在同一终端中同时使用命令之间的&
并行运行多个命令。例如:
$ sleep 4 & sleep 4 & sleep 4 & sleep 4
在具有一个CPU(由4个内核组成)的PC上,上述命令将在4秒钟后完成。假设每个内核有2个线程,并且在此PC中启用了超线程,这意味着我们可以并行运行4 * 2 = 8个任务。我的理解是,我们可以在此PC上一次并行运行多达8个命令,并且每个命令将由一个线程完成。但是例如,如果我将上面的代码更改为以下代码
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
命令,它仍然会在4秒后完成。我不确定我的理解是否正确。