Maison >développement back-end >Golang >La raison pour laquelle Golang peut atteindre une concurrence élevée

La raison pour laquelle Golang peut atteindre une concurrence élevée

(*-*)浩
(*-*)浩original
2019-12-13 14:42:512676parcourir

La raison pour laquelle Golang peut atteindre une concurrence élevée

Pourquoi Go peut atteindre une concurrence élevée

goroutine est au cœur de la conception parallèle de Go. En dernière analyse, la goroutine est en fait une coroutine , mais elle est plus petite qu'un thread. Des dizaines de goroutines peuvent être reflétées dans cinq ou six threads en bas. Le langage Go vous aide à réaliser le partage de mémoire entre ces goroutines. (Apprentissage recommandé : GO )

Goroutine ne nécessite qu'une très petite mémoire stack (environ 4 ~ 5 Ko), bien entendu, elle sera évolutive en fonction des données correspondantes. De ce fait, des milliers de tâches simultanées peuvent être exécutées simultanément.

Goroutine est plus facile à utiliser, plus efficace et plus léger que le fil.

Certaines solutions de traitement à haute concurrence utilisent essentiellement des coroutines. Openresty utilise également les coroutines du langage Lua pour obtenir des capacités de traitement à haute concurrence. Le framework haute performance de PHP, Swoole, utilise également actuellement les coroutines de PHP.

Les coroutines sont plus légères et occupent moins de mémoire, ce qui est la condition préalable à une simultanéité élevée.

Comment atteindre une concurrence élevée dans le développement Web Go

Apprenez le code HTTP Go. Créez d’abord un service Web simple.

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)
    }
}

puis compilez

go build -o test_web.gobin
./test_web.gobin

puis accédez à

curl 127.0.0.1:9000
Hello world!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn