小编Sha*_* BJ的帖子

Golang 中的 RLock() 和 Lock() 有什么区别?

Golang 中的 RLock() 和 Lock() 之间有什么区别,以及当我们使用互斥锁时如何有效地使用它们?

mutex go

14
推荐指数
1
解决办法
1万
查看次数

并行构建多个包

如何并行构建包以减少 make 命令花费的时间(Golang)

我当前的目录是“雷神”

在我的Makefile里面

build:
    go build -o thor
    go build thor/package1
    go build thor/scripts/package2
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,所有的包都是独立运行的独立进程。当我运行make命令时,每个包都一个一个地构建。因此,如果每个包构建需要 30 秒,则总共需要 90 秒(30 秒 * 3)。但如果我可以并行构建这些包,只需要 30 秒。

在 shell 脚本的情况下,这种情况可以通过使用&在后台运行每个脚本并使用wait 等待每个脚本结束来处理

示例代码

#!/bin/bash
echo "Starts"
./s1.sh &
./s2.sh &
./s3.sh &
wait
echo "ends"
Run Code Online (Sandbox Code Playgroud)

在上述情况下,所有脚本 s1.sh , s2.sh , s3.sh 将同时运行并等待所有进程完成。

那么,我们可以在 Makefile 中也做这样的事情吗:)

parallel-processing makefile

0
推荐指数
1
解决办法
1371
查看次数

标签 统计

go ×1

makefile ×1

mutex ×1

parallel-processing ×1