当前位置: 首页 > news >正文

做的网站很卡是什么原因呢优化工作流程

做的网站很卡是什么原因呢,优化工作流程,政务公开网站建设重点,山东泰安房价2023最新价格WaitGroup 是常用的 Go 同步原语之一,用来做任务编排。它要解决的就是并发-等待的问题: 现在有一个 goroutine A 在检查点 ( checkpoint ) 等待一组 goroutine 全部完成它们的任务,如果这些 goroutine 还没全部完成任务,那么 goroutine A 就会被阻塞在检查点,直到所有的 …

        WaitGroup 是常用的 Go 同步原语之一,用来做任务编排。它要解决的就是并发-等待的问题: 现在有一个 goroutine A 在检查点 ( checkpoint ) 等待一组 goroutine 全部完成它们的任务,如果这些 goroutine 还没全部完成任务,那么 goroutine A 就会被阻塞在检查点,直到所有的 goroutine 都完成任务后才能继续执行。

        我们来看一个使用 WaitGroup 的场景。

        比如,我们要完成一个大任务,需要使用并行的 goroutine 执行三个小任务,只有这三个小任务都完成了,才能执行后面的任务。如果通过轮询的方式定时询问三个小任务是否完成,则会存在两个问题:一是性能比较低,因为三个小任务可能早就完成了,却要等很长时间才能被轮询到;二是会有很多无谓的轮询,空耗CPU资源。

        这个时候使用 WaitGroup 同步原语就比较有效了,它可以阻塞等待的 goroutine,等到三个小任务都完成了,再即时唤醒它们。 其实,很多操作系统和编程语言都提供了类似的同步原语,比如 Linux 中的 barrier、Pthread(POSIX 线程)中的 barrier、C ++ 中的 std::barrier、Java 中的 CyclicBarrier 和 CountDownLatch 等。

1. WaitGroup 的使用方法

        在 Go 官方提供的同步原中,最常用的几个类型使用起来很简单,这是很不容易的设计。WaitGroup 就是简单且常用的同步原语之一,它只有三个方法。

  • Add(delta int): 给 WaitGroup 的计数值增加一个数值, delta 可以是负数。当 WaitGroup 的计数值减小到 0 时,任何阻塞在 Wait( )方法上的 goroutine 都会被解除封印,不再阻塞,可以继续执行。如果计数器的值为负数,则会出现 panic。
  • Done( ):表示一个 goroutine 完成了任务,WaitGroup 的计数值减 1。
  • Wait( ): 此方法的调用者会被阻塞,直到 WaitGroup 的计数值减小到 0。

        WaitGroup 的功能就是等待一组 goroutine 都完成任务。一般主 g

http://www.dt0577.cn/news/22116.html

相关文章:

  • 网站怎么做移动端怎样做企业推广
  • 做网站那个公司比较好软件外包公司
  • 有哪些免费网站可以做店招长春网站建设公司哪个好
  • 大连网站建设客服天津网站建设
  • 全国建设造价信息网站百度seo在线优化
  • 免费的网站制作平台商丘关键词优化推广
  • 网站建设虚线的代码百度官网网站登录
  • 百度验证网站百度一下打开
  • 在线图片编辑去除水印教程seo自动优化软件安卓
  • 龙岗地区做网站公司深圳网络推广网络
  • 广州疫情最新公布超级seo助手
  • 遂宁网站建设求职seo
  • 搜索网站怎么做武汉百度推广代运营
  • 培训学做网站要多久怎么做网站免费的
  • 做网站的公司应该税率多少做seo推广一年大概的费用
  • 做付费网站站长全自动年赚30万浏览器下载
  • discuz做的网站怎么修改青岛seo网站推广
  • 深圳网站建设公司报价单青岛app开发公司
  • 做网站ps笔记本电脑营销策划公司靠谱吗
  • 用php做的大型网站站长工具查询网
  • 广东省汕头市龙湖区疫情最新消息seo sem
  • 如何修改wordpress站济南seo公司
  • 深圳企业营销型网站长沙网
  • 网站建设详情报价杭州网站关键词排名优化
  • 高端品牌网站南京网络优化培训
  • c .net 做网站环球资源网官方网站
  • 王者荣耀做网站seo优化招聘
  • 修改wordpress文件大小搜索引擎优化包括
  • 网站当前位置怎么做网络服务器
  • 廊坊怎么做网站网络销售适合什么人做