加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux bash多线程/处理小型工作

发布时间:2020-12-13 23:50:50 所属栏目:Linux 来源:网络整理
导读:我有一个运行一些数据处理命令10K次的脚本. foreach f (folderName/input*.txt) mycmd $fend 我已经为每个“mycmd $f”定时运行时间为0.25秒. 通过10K运行,它总计超过1小时. 我在16核nehalem上运行它. 如果不在剩余的15个核心上运行,那将是一个巨大的浪费.
我有一个运行一些数据处理命令10K次的脚本.

foreach f (folderName/input*.txt)
  mycmd $f
end

我已经为每个“mycmd $f”定时运行时间为0.25秒.
通过10K运行,它总计超过1小时.
我在16核nehalem上运行它.
如果不在剩余的15个核心上运行,那将是一个巨大的浪费.

我试过&有了睡眠,不知何故,脚本会在3900次迭代时死于警告或错误,见下文.睡眠时间越短,死亡的速度越快.

foreach f (folderName/input*.txt)
  mycmd $f & ; sleep 0.1
end

必须有一个更好的方法.
注意:我更喜欢shell脚本解决方案,让我们不要徘徊在C/C++领域.

谢谢

问候

解决方法

将文件列表传递给

xargs -n 1 -P 16 mycmd

例如:

echo folderName/input*.txt | xargs -n 1 -P 16 mycmd

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读