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

(*-*)浩
Libérer: 2019-12-13 14:42:51
original
2633 Les gens l'ont consulté

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)
    }
}
Copier après la connexion

puis compilez

go build -o test_web.gobin
./test_web.gobin
Copier après la connexion

puis accédez à

curl 127.0.0.1:9000
Hello world!
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal