写脚本的时候一直很羡慕golang的并行处理能力, 突发奇想,我们在做一些系统级的脚本程序的时候,其实可以直接
通过golang去执行系统上的可执行程序,然后利用CPU的多核能力,说干就干,下面就是代码范例
package main
import (
"fmt"
"os/exec"
"runtime"
"time"
)
var quit chan int = make(chan int)
func runComm() {
cmd := exec.Command("python", "get_data.py")
out, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
}
fmt.Println(string(out))
//return string(out)
time.Sleep(3*time.Second)
quit <- 0
}
func main() {
runtime.GOMAXPROCS(2)
go runComm()
go runComm()
for i := 0; i < 2; i++ {
<- quit
}
}
上面这个就是利用golang的 goroutine的多核处理能力,来调用写好的处理数据的pythong脚本,更多代码在下面的链接
https://github.com/r00tjimmy/codeBox/blob/master/golang_basic/goroutine_exec.go