这是我的问题:
我有 100 个随着时间的推移创建的 perl 脚本;每个脚本都有自己的时间——从 5 分钟到 5 小时不等。
今天,我作为一个套件以顺序方式从命令提示符运行所有这些脚本,运行所有这些脚本需要将近 1.5 天。
我想知道是否可以同时打开 100 个命令提示符,以及我是否可以在每个命令提示符上并行运行一个 perl 脚本...所以我的所有脚本都可以在 5 小时内完成(单个脚本花费的最长时间) .
这可以通过任何工具实现吗?
我们可以使用多线程来实现上述目标吗?
请建议什么是更好的方法?
最佳答案
代替:
perl script1
perl script2
...
perl script100
你可以做到
perl script1 &
perl scipt2 &
...
perl script100 # no & here!
不过,这不完全是多线程。
如果您拥有所有脚本,并且只有那些脚本位于专用目录中(比如 parscripts
),您可以执行以下操作:
for s in parscripts/*.pl;do perl $s & ;done
wait
echo "All scripts completed."
但这当然是以脚本相互独立为前提的!另请参阅@KlasLindbäcks 的回答。
关于multithreading - 可以使用多线程并行运行 100 个 perl 脚本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19929139/