DEV Community

loading...
Cover image for Concurrency trong Go: Tạo goroutine (phần 2)

Concurrency trong Go: Tạo goroutine (phần 2)

handuy profile image handuy ・1 min read

bài viết trước, chúng ta đã biết cách tạo các goroutine bằng cách sử dụng từ khóa go trước lời gọi hàm. Tuy nhiên, các goroutine này chưa kịp chạy thì hàm main đã return khiến cho chương trình Go bị shutdown

Trong video dưới đây, mình chia sẻ một cách (hơi bị hacky "ăn gian" một xíu 😅 😅 😅 ) để cho hàm main chờ cho các goroutine chạy xong thì mới exit

Code sử dụng trong video:

package main

import (
    "fmt"
    "time"
)

func printNumber() {
    for i := 0; i <= 100; i++ {
        fmt.Printf("%d ", i)
    }
}

func printChar() {
    for i := 'A'; i < 'A'+26; i++ {
        fmt.Printf("%c ", i)
    }
}

func main() {
    go printNumber()
    go printChar()
    time.Sleep(3 * time.Second)
}

Enter fullscreen mode Exit fullscreen mode

Discussion

pic
Editor guide