Golang 中的 RLock() 和 Lock() 之间有什么区别,以及当我们使用互斥锁时如何有效地使用它们?
如何并行构建包以减少 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 中也做这样的事情吗:)