Les fonctions du langage Go coopèrent avec Goroutine
Coroutine (Goroutine) est un mécanisme d'exécution parallèle léger dans le langage Go. Il peut collaborer avec des fonctions pour créer des programmes simultanés hautes performances et évolutifs.
Fonctions
Les fonctions du langage Go sont des collections de blocs de code qui effectuent des tâches spécifiques et renvoient des résultats. Les fonctions peuvent accepter des paramètres et les transmettre par valeur ou référence.
func add(a, b int) int { return a + b }
Goroutine
Goroutine est un thread d'exécution léger géré par le runtime Go. Il est créé avec le mot-clé go
comme suit : go
关键字创建,如下所示:
go func() { // Goroutine 正在执行的任务 }
协作
函数和 Goroutine 可以协作以创建并发程序。函数可以启动 Goroutine 来执行任务,而 Goroutine 可以在函数执行完成后回调函数。
实战案例
考虑以下代码示例,它启动一个 Goroutine 来计算斐波那契数列:
func main() { // 启动一个 Goroutine 来计算第 n 个斐波那契数 n := 5 fib := make(chan int) go func() { fib <- fib(n) }() // 在 main Goroutine 中接收计算结果 result := <-fib fmt.Println("第", n, "个斐波那契数为:", result) } func fib(n int) int { if n <= 1 { return n } return fib(n-1) + fib(n-2) }
在这种情况下,main()
函数启动了一个 Goroutine 来计算第 5 个斐波那契数。fib()
函数在 Goroutine 中执行,并将结果发送回 main()
函数的通道 fib
。main()
rrreee
Collaboration
🎜🎜 Les fonctions et les Goroutines peuvent collaborer pour créer des programmes simultanés. Les fonctions peuvent démarrer les Goroutines pour effectuer des tâches, et les Goroutines peuvent rappeler des fonctions une fois l'exécution de la fonction terminée. 🎜🎜🎜Cas pratique🎜🎜🎜Considérons l'exemple de code suivant, qui démarre une Goroutine pour calculer la séquence de Fibonacci : 🎜rrreee🎜Dans ce cas, la fonctionmain()
démarre une Goroutine pour calculer la séquence de Fibonacci séquence : Calculez le 5ème nombre de Fibonacci. La fonction fib()
est exécutée dans le Goroutine et renvoie le résultat au canal fib
de la fonction main()
. La fonction main()
reçoit le résultat du canal et l'imprime. 🎜🎜Avec cette approche collaborative, nous pouvons profiter des capacités de concurrence de Goroutines tout en conservant l'ordre et la lisibilité du code. 🎜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!