[英]How to run shell commands in parallel without background processes?
我试图以并行方式运行多个shell命令,而不使用“&”进行后台进程。 另外,我想(以一种公平的方式)为一个CPU分配一个作业。例如,如果我有四个内核,我想按如下所示向cmd4分配四个cmd1:
CPU#1:cmd1
CPU#2:cmd2
CPU#3:cmd3
CPU#4:cmd4
您能告诉我这样做的方法吗?
我找到了“并行”命令,但是我不知道如何使用它。 另外,我尝试了以下命令:./cmd1 | ./cmd2 | ./cmd3 | ./cmd4似乎四个命令(cmd1到cmd4)正在并行运行,但是我不确定如上面所说的那样,这些作业已分配给内核。
谢谢!
抱歉。 我在linux上运行命令。
首先,如果要并行执行进程,则它们必须是后台作业。 您反对使用&
做什么?
其次,您可以使用taskset
将进程绑定到一个CPU内核或一组内核。 例如:
taskset -c 0 cmd1 &
taskset -c 1 cmd2 &
taskset -c 2 cmd3 &
taskset -c 3 cmd4 &
但是,这可能不是一个好主意。 如果一个进程长时间闲置,其他三个进程则无法使用分配给它的内核。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.