Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah fungsi golang mengawal pelaksanaan goroutine?

Bagaimanakah fungsi golang mengawal pelaksanaan goroutine?

PHPz
Lepaskan: 2024-05-04 12:39:01
asal
963 orang telah melayarinya

Fungsi Go mengawal pelaksanaan Goroutine dengan cara berikut: runtime.Goexit(): Menamatkan Goroutine semasa secara paksa. sync.WaitGroup: Tunggu sekumpulan Goroutines selesai. pilih{}: Membenarkan Goroutine menunggu salah satu daripada berbilang peristiwa dan melakukan tindakan yang sepadan berdasarkan peristiwa yang dicetuskan pertama. konteks.Konteks: Boleh digunakan untuk melepasi tarikh akhir atau membatalkan permintaan kepada Goroutines.

Bagaimanakah fungsi golang mengawal pelaksanaan goroutine?

Fungsi How Go mengawal pelaksanaan Goroutine

Bahasa pengaturcaraan Go menyokong konkurensi dan menggunakan Goroutine (benang ringan) untuk mencapai konkurensi. Goroutines boleh dibuat melalui fungsi dan dimulakan pada bila-bila masa selepas penciptaan. Artikel ini akan memperkenalkan fungsi berbeza yang digunakan untuk mengawal pelaksanaan Goroutine dan memberikan beberapa contoh praktikal.

Fungsi yang mengawal pelaksanaan Goroutine

  • runtime.Goexit(): Tamatkan Goroutine semasa secara paksa.
  • sync.WaitGroup: Tunggu sekumpulan Goroutines selesai.
  • pilih{}: Membenarkan Goroutine menunggu salah satu daripada berbilang acara dan melakukan tindakan yang sepadan berdasarkan peristiwa yang dicetuskan pertama.
  • konteks.Konteks: boleh digunakan untuk meluluskan tarikh akhir atau permintaan pembatalan kepada Goroutines.

Kes praktikal

1. Tamatkan Goroutine

package main

import (
    "fmt"
    "runtime"
    "time"
)

func main() {
    go func() {
        for {
            fmt.Println("Goroutine is running...")
            time.Sleep(1 * time.Second)
        }
    }()

    // 等待 10 秒后终止 Goroutine
    time.Sleep(10 * time.Second)
    runtime.Goexit()
}
Salin selepas log masuk

2

4 . Gunakan konteks Batalkan Goroutine

package main

import (
    "fmt"
    "sync"
    "time"
)

func main() {
    var wg sync.WaitGroup

    // 创建 5 个 Goroutine
    for i := 0; i < 5; i++ {
        wg.Add(1)
        go func(i int) {
            fmt.Printf("Goroutine %d is running...\n", i)
            time.Sleep(1 * time.Second)
            wg.Done()
        }(i)
    }

    // 等待所有 Goroutine 完成
    wg.Wait()
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah fungsi golang mengawal pelaksanaan goroutine?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan