Les fonctions Go prennent en charge la concurrence, vous permettant d'utiliser le mot-clé go pour démarrer des goroutines simultanées dans la fonction, exécutant ainsi des tâches en parallèle, améliorant les performances et la réactivité. Par exemple, une application qui récupère des données peut utiliser des goroutines pour récupérer des données provenant de plusieurs sources en parallèle, améliorant ainsi le débit et la réactivité.
Concurrence dans les fonctions dans Go
Le langage Go est connu pour ses fonctionnalités avancées de concurrence. L'une des fonctionnalités clés est la possibilité de lancer des routines simultanées (goroutines) au sein des fonctions. Cela permet aux développeurs d'effectuer des tâches en parallèle, améliorant ainsi les performances du programme. Création de
Goroutine
goroutine est un thread léger qui peut être exécuté par les fonctionsgo
关键字创建。传递给go
dans la nouvelle goroutine. Par exemple :
func hello() { fmt.Println("Hello") } func main() { go hello() // 主 goroutine 继续执行其他代码 }
Avantages de la concurrence
Il y a plusieurs avantages à utiliser la concurrence dans les fonctions :
Exemple pratique :
Considérons une application qui doit obtenir des données provenant de plusieurs sources. Nous pouvons utiliser la concurrence dans les fonctions pour effectuer ces tâches de récupération en parallèle :
func getData(url string) (string, error) { // 从 URL 获取数据 } func main() { urls := []string{"url1", "url2", "url3"} results := make(chan string, len(urls)) for _, url := range urls { go func(u string) { data, err := getData(u) // 向结果通道发送数据 results <- data // 返回时关闭通道 defer close(results) }(url) } // 从结果通道收集数据 for i := 0; i < len(urls); i++ { fmt.Println(<-results) } }
Cet exemple montre comment utiliser des goroutines pour récupérer des données de plusieurs URL en parallèle. Il utilise un canal pour collecter et afficher les résultats.
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!