Goでプロセスが終了するのを防ぐにはどうすればよいですか?

Go言語では、sync.WaitGroupやselect{}文を使ってプロセスの終了を防ぐことができます。

  1. 同期処理を行うGoroutineの完了を待つWaitGroup
  2. sync.WaitGroup.Wait()
  3. 追加
  4. 完了
  5. 待ちます()
package main

import (
    "fmt"
    "sync"
)

func main() {
    var wg sync.WaitGroup
    wg.Add(1) // 增加计数

    go func() {
        defer wg.Done() // 减少计数
        // 执行一些操作
    }()

    wg.Wait() // 等待计数归零

    fmt.Println("进程退出")
}
  1. {選んだ}
  2. {select}ネイティブに日本語で言い換える
  3. ケースは1つだけでネイティブの日本語で言い換えてください。
package main

import (
    "fmt"
)

func main() {
    done := make(chan bool)

    go func() {
        // 执行一些操作
        done <- true
    }()

    <-done // 阻塞等待

    fmt.Println("进程退出")
}

これらの二つの方法はどちらもプログラム停止を防ぎますが、具体的なニーズや場面に応じてどれを使用するか決めます。

bannerAds