一个golang并行编程库,用于业务聚合或重构。可以用最少的代码,将串行的函数调用并行化,无需改变函数的声明。
实现原理和demo参考github地址:https://github.com/buptmiao/parallel
使用:
以下有三种方法:testjoba,testjobb,testjobc执行并行:
import ( "github.com/buptmiao/parallel" ) func testJobA() string { return "job" } func testJobB(x, y int) int { return x + y } func testJobC(x int) int { return -x } func main() { var s string var x, y int p := parallel.NewParallel() p.Register(testJobA).SetReceivers(&s) p.Register(testJobB, 1, 2).SetReceivers(&x) p.Register(testJobC, 3).SetReceivers(&y) // block here p.Run() if s != "job" || x != 3 || y != -3{ panic("unexpected result") } }