当前位置: 首页 > 后端技术 > Python

python调用golang的几种方法

时间:2023-03-26 15:18:32 Python

Origin众所周知,cpython的GIL锁使得多核CPU的使用不便。Golangdesign为多核处理器精心设计了goroutines和channels,让使用多核处理器极其方便。工作。新发布的go1.9的运行效率是govsc在pidigits计算上只比c语言慢17%,比c++慢8%。而且更重要的是,优秀的c/c++程序员是非常难得的,但是得益于golang强制的gofmt,有编程经验的新手在接触golang两周后也能成为非常高效的gophers。Python在数据处理上的应用如此广泛,所以使用python调用golang已经成为一种非常有效的方式,让python能够使用多核cpu(想想128核cpu)来加速python程序的运行。接下来我将介绍几种调用方式,并简单的进行这些方式之间的横向比较。主要是指用go1.5构建python模块usinggobuildmodepackagemainimport"C"//Addadda+bfuncAdd(a,bint)int{sum:=make(chanint)gofunc(){sum<-a+b}()c:=<-sumreturnc}funcmain(){}目标是在python中调用这个Add方法获取和,看buildmodehelp$gohelpbuildmodecompile$gobuild-buildmode=c-shared-osum.sogo_plus.go$ls-sh|grepsum得到这个sum.so有1.3Mpython环境是3.5.3