iT邦幫忙

2023 iThome 鐵人賽

DAY 1
0
自我挑戰組

Go語言自學挑戰系列 第 19

第二十天:Goroutine介紹(1)

  • 分享至 

  • xImage
  •  

Goroutine介紹

終於完成2/3了~~~

今天要介紹一個對我來說相當陌生的功能Goroutine

什麼是Goroutine?

以下是官網對於Goroutine的解釋,

A goroutine is a lightweight thread managed by the Go runtime.

在Golang中可使用goroutine來建立並發(concurrency)程式,

只要在函式名稱前面加上go關鍵字就可以使用了,

goroutine的使用方法如下:

go 函式名稱()

嘗試看看A Tour of Go官網提供的範例:

package main

import (
	"fmt"
	"time"
)
func say(s string) {
	for i := 0; i < 5; i++ {
		time.Sleep(100 * time.Millisecond)
		fmt.Println(s)
	}
}
func main() {
	go say("world")
	say("hello")
}

輸出結果:

world
hello
world
hello
world
hello
hello
world
world
hello

參考資料

  1. https://medium.com/@jessie_kuo/why-is-goroutine-being-called-a-lightweight-thread-46d70d198ad6
  2. https://www.tutorialspoint.com/goroutine-vs-thread-in-golang
  3. https://go.dev/tour/concurrency/1
  4. https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html

上一篇
第十八天:泛型Generics
下一篇
第二十一天:Goroutine 介紹(2):協程同步sync.WaitGroup
系列文
Go語言自學挑戰29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言