gpt4 book ai didi

go - 是否有缓冲锁定模式?

转载 作者:行者123 更新时间:2023-12-01 22:38:03 25 4
gpt4 key购买 nike

在 Go 中有一个缓冲 channel 的概念。那是一个在你填满它的缓冲区之前不会被阻塞的 channel 。

通用缓冲锁定是否有任何通用模式?它将为有限数量的客户锁定一些资源。

最佳答案

为有限数量的客户端锁定某些资源的原语称为 semaphore。 .

它很容易通过缓冲 channel 实现:

var semaphore = make(chan struct{}, 4) // allow four concurrent users

func f() {
// Grab the lock. Blocks as long as 4 other invocations of f are still running.
semaphore <- struct{}{}

// Release the lock once we're done.
defer func() { <-semaphore }()

// Do work...
}

关于go - 是否有缓冲锁定模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60004967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com