Linux Shell 并行

一、并行实例

想象一个场景,我们有一个循环,循环中执行一条命令,该命令执行一次耗时2s。执行该循环20次。

1 串行执行

  1. 查看串行脚本代码
    在这里插入图片描述

  2. 串行执行结果
    在这里插入图片描述

从运行结果可以看到串行执行时间共计40s秒左右,执行依次执行。

2 并行执行

  1. 并行执行代码
    在这里插入图片描述
  2. 并行执行结果
    在这里插入图片描述

从运行结果可以看到并行时间缩短到2s左右,20个指令被提交到后台并行运行。

二、并行度控制

上面的示例中,for 循环会将20个指令全部提交到后台。如果命令开销大且循环次数多,此方法会造成设备资源过度消耗。所以实现对并行度的控制是非常有必要的。即当提交到后台的任务数到达一定数量之后,就等待前面提交的任务完成之后再进行提交。

  1. 并行度控制代码
    在这里插入图片描述
    设置并行数是4个并行任务。
  2. 并行度执行结果
    在这里插入图片描述

三、并行度控制 parallel

seq 20 | parallel -j 4 "echo {}; sleep 1"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IForFree

整理不易,望多支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值