对 makefile 中 .NOTPARALLE 的学习体会

本文通过示例展示了如何利用Makefile实现脚本的并行执行,并介绍了.NOTPARALLEL指令的作用,即强制使任务串行执行。

上例子

事先准备好三个脚本:

a01.sh b01.sh c01.sh:

脚本内容如下, 即每睡眠一秒钟后再输出内容:

a01.sh

for ((i=0;i<10;i++));
do
    @echo "a01..." $i;
    sleep 1;
done;

b01.sh

for ((i=0;i<10;i++));
do
    @echo "b01..." $i;
    sleep 1;
done;

c01.sh

for ((i=0;i<10;i++));
do
    @echo "c01..." $i;
    sleep 1;
done;

makefile 的内容如下:

复制代码
.PHONY:all

all: a b c

a:
    ./a01.sh

b:
    ./b01.sh

c:
    ./c01.sh
复制代码

如果仅仅运行 make , 则 a01.sh b01.sh c01.sh 几个脚本还是串行执行的。

但是如果执行  make --jobs=3,得到的结果是:

a01...1

b01...1

c01...1

a01....2

b01....2

c01....2

...

成为并行执行。

但是如果在此makefile 加入 .NOTPARALLEL,则:

复制代码
.NOTPARALLEL
.PHONY:all all: a b c a: .
/a01.sh b: ./b01.sh c: ./c01.sh
复制代码

则 即使 make --jobs=3 执行,a01.sh b01.sh c01.sh 几个脚本仍然是串行执行的。

结束

 

结束





本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/09/25/2701489.html,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值