Go语言程序:创建两个Goroutine
在使用Go语言时,可能需要创建两个goroutine来进行并行处理、异步操作等。在本Go语言文章中,我们将探讨如何使用匿名函数、命名函数以及函数调用来创建两个goroutine。在Go语言中,goroutine是一个独立的并发函数,它允许函数并发运行,从而实现并发编程。
语法
time.Sleep(duration)
这是一个内置的Go语言函数,用于暂停程序的执行。
它只接受一个参数“duration”。
duration:这是您想要休眠的时间长度。
算法
启动主goroutine。
通过调用匿名函数,在主goroutine中创建一个新的goroutine。
在第一个goroutine中,循环从i = 1到i = 4。“Goroutine 1:”将被打印出来,后面跟着i的当前值。休眠500毫秒。
通过调用另一个匿名函数,在主goroutine中创建另一个goroutine。
在第二个goroutine中,循环从i = 1到i = 4。“Goroutine 2:”将被打印出来,后面跟着i的当前值。休眠500毫秒。
在生成goroutine后,主goroutine休眠2秒,以允许子goroutine执行。
示例1
在这个例子中,我们将使用匿名函数创建两个goroutine,这种方法推荐用于简单的goroutine设置。在下面的代码中,我们将创建两个goroutine并使用循环打印消息。
package main
import (
"fmt"
"time"
)
func main() {
go func() {
for i := 1; i <= 4; i++ {
fmt.Println("Goroutine 1:", i)
time.Sleep(time.Millisecond * 500)
}
}()
go func() {
for i := 1; i <= 4; i++ {
fmt.Println("Goroutine 2:", i)
time.Sleep(time.Millisecond * 500)
}
}()
time.Sleep(time.Second * 2)
}
输出
Goroutine 2: 1 Goroutine 1: 1 Goroutine 1: 2 Goroutine 2: 2 Goroutine 1: 3 Goroutine 2: 3 Goroutine 2: 4 Goroutine 1: 4
示例2
在这个例子中,我们将创建两个单独的命名函数,每个函数都将作为goroutine执行。在下面的代码中,两个goroutine并发运行并打印消息以及数字。
package main
import (
"fmt"
"time"
)
func printMessage(message string) {
for i := 1; i <= 6; i++ {
fmt.Println(message, i)
time.Sleep(time.Millisecond * 500)
}
}
func main() {
go printMessage("Goroutine 1:")
go printMessage("Goroutine 2:")
time.Sleep(time.Second * 2)
}
输出
Goroutine 1: 1 Goroutine 2: 1 Goroutine 1: 2 Goroutine 2: 2 Goroutine 2: 3 Goroutine 1: 3 Goroutine 1: 4 Goroutine 2: 4 Goroutine 2: 5
示例3
在这个例子中,我们不直接定义函数,而是通过传递函数名作为参数来调用现有函数。在下面的代码中,我们将使用两个并发运行的goroutine打印特定计数的数字。
package main
import (
"fmt"
"time"
)
func printMessage(message string, count int) {
for i := 1; i <= count; i++ {
fmt.Println(message, i)
time.Sleep(time.Millisecond * 500)
}
}
func main() {
go printMessage("Goroutine 1:", 5)
go printMessage("Goroutine 2:", 5)
time.Sleep(time.Second * 3)
}
输出
Goroutine 2: 1 Goroutine 1: 1 Goroutine 1: 2 Goroutine 2: 2 Goroutine 2: 3 Goroutine 1: 3 Goroutine 1: 4 Goroutine 2: 4 Goroutine 2: 5 Goroutine 1: 5
结论
在这篇文章中,我们讨论了如何在Go语言中创建两个goroutine。我们研究了三种不同的创建两个goroutine的方法:匿名函数、命名函数和使用函数调用。Goroutine允许函数并发运行,从而实现并发编程。
数据结构
网络编程
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP