multithreading - 可以使用多线程并行运行 100 个 perl 脚本吗?

标签 multithreading performance perl fork command-line-interface

这是我的问题:

我有 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/

相关文章:

C++ 互斥量和函数参数

c++ - 当函数执行结束时, vector 中的线程会发生什么?

.net - .NET 中是否有类似 perl 的 Regexp::Grammars 或标记的子模式?

c++ - 添加了闭包的 Perl newXS()

Android OpenCV : how to properly call Looper. 准备()

c++ - 在同一个函数/程序中使用 WebSocket++ 服务器和客户端

android - 我现在正在研究 android,首先我创建编辑文本,然后将按钮编辑为整数

c - 在程序中使用几个小函数会影响性能吗?

java - 垃圾回收会改变Java中的对象地址吗?

perl - 如何修复 Mojolicious-Boilerplate 应用程序?