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