登录
首页 >  Golang >  Go问答

是否有缓冲锁定模式?

来源:Golang技术栈

时间:2023-04-17 16:19:37 110浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《是否有缓冲锁定模式?》,这篇文章主要会讲到golang等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

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

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

正确答案

为有限数量的客户端锁定某些资源的原语称为信号量

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

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 

到这里,我们也就讲完了《是否有缓冲锁定模式?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于golang的知识点!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>