Maison > Article > développement back-end > Comment les fonctions Golang sont-elles utilisées pour la programmation simultanée ?
Le langage
Go implémente la programmation simultanée via Goroutine, qui permet d'exécuter simultanément des threads légers. Les goroutines peuvent être créées à l'aide du mot-clé go et communiquer via des tuyaux (type chan). Dans le cas réel, nous recherchons des chaînes en parallèle et créons un pipeline pour recevoir les résultats de chaque recherche Goroutine, améliorant ainsi la vitesse de recherche.
Utilisation des fonctions Go pour la programmation simultanée
Le langage Go fournit un thread léger appelé Goroutine, qui peut être utilisé pour la programmation simultanée. Les Goroutines peuvent s'exécuter simultanément, améliorant ainsi les performances et la réactivité de votre application.
Pour créer une Goroutine, utilisez le mot clé go
, suivi de la fonction à exécuter : go
关键字,后面跟着要执行的函数:
go func() { fmt.Println("这是一个 Goroutine!") }
Goroutine 也可以接收和发送值。使用 chan
// 创建管道 ch := make(chan string) // Goroutine 发送值 go func() { ch <- "消息 1" ch <- "消息 2" } // 主程序接收值 for msg := range ch { fmt.Println(msg) }Les Goroutines peuvent également recevoir et envoyer des valeurs. Utilisez le type
chan
pour créer un pipeline qui permet la communication entre les Goroutines : // 文件列表 files := []string{"file1.txt", "file2.txt", "file3.txt"} // 创建管道 result := make(chan string) // Goroutine 并行查找字符串 for _, file := range files { go func(file string) { data, err := ioutil.ReadFile(file) if err != nil { result <- file + ": " + err.Error() return } result <- file + ": " + strconv.Itoa(strings.Count(string(data), "foo")) }(file) } // 主程序打印结果 for result := range result { fmt.Println(result) }Exemple pratique : recherche parallèle de chaînes Supposons que nous ayons une liste de fichiers à partir desquels nous devons trouver un chaîne. Nous pouvons utiliser Goroutines pour faire cela en parallèle, rendant la recherche plus rapide :
rrreee
En utilisant cet exemple, nous pouvons trouver les occurrences de la chaîne "foo" dans chaque fichier en parallèle, obtenant des performances plus rapides qu'une recherche à un seul thread. 🎜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!