如题,
比如现在我有一个4核的CPU,
现在我有100个压缩包,
所以我需要写一个脚本,四个线程同时执行,如此来提高效率。
for tar in *
do
tar xf $tar
done
如此执行的话,就会一个一个的执行,
但是如果加上&来执行又会同时执行所有,
所以有没有什么办法可以写出一个4线程解压缩的脚本?
不要用网上那个fifo的方法。
那个方法对于目前的我来说,比较复杂,我看不懂里面的原理。
最好可以用类似设置环境变量的方式来完成。
我可能需需要分多次下载大量的压缩包。
简单的讲,我希望类似于写一个可以在本shell里面生效的脚本,
让所有在本脚本里面运行的脚本的进程数目都被强制的限制。
比如我们之前说如果加上&在后台执行,
就会一次性的执行,
我希望使用一些方法让这个方式可以每次只执行四个。
希望知道的高手可以帮助我。
谢谢!!!
如何用简单的方法控制脚本的线程
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
Re: 如何用简单的方法控制脚本的线程
同时,我希望我可以知道进程执行的过程,
简单的讲,如果我这样写,
for tar in *
do
tar xvf $tar
done
如此的,
我可以看到解压的过程。
但是要是加上&就会被放到后台,如此就看不到解压的过程了。
所以谁知道如何在不使用&的情况下面进行多线程的解压,
我们可以开4个子shell来显示。
突然间,我发现貌似这个shell设计的时候就是只能显示一个线程的。
我不奢望弄得和迅雷显示下载一样。
但是还是希望可以适当的显示一下。
不知道在shell里面有没有这样的的工具。
简单的讲,如果我这样写,
for tar in *
do
tar xvf $tar
done
如此的,
我可以看到解压的过程。
但是要是加上&就会被放到后台,如此就看不到解压的过程了。
所以谁知道如何在不使用&的情况下面进行多线程的解压,
我们可以开4个子shell来显示。
突然间,我发现貌似这个shell设计的时候就是只能显示一个线程的。
我不奢望弄得和迅雷显示下载一样。
但是还是希望可以适当的显示一下。
不知道在shell里面有没有这样的的工具。