您好,欢迎访问一九零五行业门户网

golang能做高并发的原因

go为什么能做到高并发
goroutine是go并行设计的核心。goroutine说到底其实就是协程,但是它比线程更小,几十个goroutine可能体现在底层就是五六个线程,go语言内部帮你实现了这些goroutine之间的内存共享。                                                      (推荐学习:go)
执行goroutine只需极少的栈内存(大概是4~5kb),当然会根据相应的数据伸缩。也正因为如此,可同时运行成千上万个并发任务。
goroutine比thread更易用、更高效、更轻便。
一些高并发的处理方案基本都是使用协程,openresty也是利用lua语言的协程做到了高并发的处理能力,php的高性能框架swoole目前也在使用php的协程。
协程更轻量,占用内存更小,这是它能做到高并发的前提。
go web开发中怎么做到高并发的能力
学习go的http代码。先创建一个简单的web服务。
package mainimport ( "fmt" "log" "net/http")func response(w http.responsewriter, r *http.request) { fmt.fprintf(w, "hello world!") //这个写入到w的是输出到客户端的}func main() { http.handlefunc("/", response) err := http.listenandserve(":9000", nil) if err != nil { log.fatal("listenandserve: ", err) }}
然后编译
go build -o test_web.gobin./test_web.gobin
然后访问
curl 127.0.0.1:9000hello world!
以上就是golang能做高并发的原因的详细内容。
其它类似信息

推荐信息