首頁  >  文章  >  後端開發  >  golang能做高並發的原因

golang能做高並發的原因

(*-*)浩
(*-*)浩原創
2019-12-13 14:42:512581瀏覽

golang能做高並發的原因

go為什麼能做到高並發

goroutine是Go平行設計的核心。 goroutine說到底其實就是協程,但是它比線程更小,幾十個goroutine可能體現在底層就是五、六個線程,Go語言內部幫你實現了這些goroutine之間的記憶體共享。                                                     中 的數據伸縮。也因為如此,可同時運行成千上萬個並發任務。 goroutine比thread更易用、更有效率、更輕。

一些高並發的處理方案基本上都是使用協程,openresty也是利用lua語言的協程做到了高並發的處理能力,PHP的高性能框架Swoole目前也在使用PHP的協程。

協程更輕量,佔用記憶體更小,這是它能做到高並發的前提。

go web開發中怎麼做到高並發的能力

學習go的HTTP程式碼。先創建一個簡單的web服務。

package main
import (
    "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:9000
Hello world!

以上是golang能做高並發的原因的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn