Golang で同時実行をどのように制御しますか?
Go言語では、goroutineとchannelを活用することで並行化を実現できます。以下に一般的な実装方法を示します。
- ネイティブ日本語に言い換えてください。一つだけ選択する必要があります。
- この質問をネイティブの日本語に言い換えると、1 つのオプションのみ必要です。
concurrency := make(chan struct{}, n)
- コンカレンシー
- 並行性
- 同時実行性
// 启动goroutine之前获取一个token
concurrency <- struct{}{}
// 执行并发任务
go func() {
defer func() {
// 任务完成后释放token
<-concurrency
}()
// 执行具体的并发任务
// ...
}()
上記のやり方により、同時に動作するgoroutineの数を制御し、並行処理を制御できます。