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

思行做网站咖啡店网站模板

思行做网站,咖啡店网站模板,黄冈app下载推广介绍,百度浏览官网文章目录 go func 和 WaitGroup协程 v.s. 线程GMP 并发模型 go func 和 WaitGroup 在 Go 语言中,协程(goroutine)之间并没有严格的父子关系。一个协程中可以启动其他协程,即使启动它的协程已经结束,所启动的新协程仍会…

文章目录

    • go func 和 WaitGroup
    • 协程 v.s. 线程
    • GMP 并发模型

go func 和 WaitGroup

  • 在 Go 语言中,协程(goroutine)之间并没有严格的父子关系。一个协程中可以启动其他协程,即使启动它的协程已经结束,所启动的新协程仍会继续运行,直到自身执行完毕。
  • 但需要注意的是,main 函数运行在特殊的主协程中。一旦 main 函数返回,整个程序的运行时(runtime)也会随之退出,此时即使还有其他协程未执行完毕,也会被强制终止。
package mainimport ("fmt""time"
)func parent() {for i := 'a'; i <= 'z'; i++ {fmt.Printf("%d\n", i)time.Sleep(500 * time.Microsecond)}
}func child() {for i := 'a'; i <= 'z'; i++ {fmt.Printf("%c\n", i)time.Sleep(500 * time.Microsecond)}
}func main() {go parent()go child()fmt.Println("main")
}// 输出
zhengjia@MacBook-Air Sys % go run "/Users/zhengjia/Downloads/Sys/main.go"
main
  • time.Sleep(100000 * time.Microsecond) 加上这段才能保证两个go程交替运行,但是这样每次都要强行等固定时间,会造成资源浪费,能不能让两个go程执行完后自动终止runtime呢?
  • 在 Go(Golang)语言中,sync.WaitGroup 是一个用于协程(goroutine)同步的重要工具。它可以用来等待一组 goroutine 全部执行完成,常用于并发任务的控制。它通过一个计数器来跟踪未完成的任务数量,并提供简单的方法来管理这个计数器。

在这里插入图片描述

package mainimport ("fmt""sync""time"
)var (wg = sync.WaitGroup{}
)func parent() {defer wg.Done()wg.Add(1)go child()for i := 'a'; i <= 'z'; i++ {fmt.Printf("%d\n", i)time.Sleep(500 * time.Microsecond)}
}func child() {defer wg.Done()for i := 'a'; i <= 'z'; i++ {fmt.Printf("%c\n", i)time.Sleep(500 * time.Microsecond)}
}func main() {wg.Add(1)go parent()// 匿名函数go func() {defer wg.Done()wg.Add(1)go child()for i := 'a'; i <= 'z'; i++ {fmt.Printf("%d\n", i)time.Sleep(500 * time.Microsecond)}}()fmt.Println("main")wg.Wait() // 不为0就一直阻塞
}

协程 v.s. 线程

在这里插入图片描述

在这里插入图片描述

  • go中线程和协程并不是绑定的,一个协程可能中途会换一系列内核线程去执行,这和Java、CPP有着明显区别。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

GMP 并发模型

在这里插入图片描述

在这里插入图片描述

  • M 执行 G,但必须通过绑定一个 P 才能运行
  • P 拥有一个本地的 G 队列,将 G 分配给 M
  • 多个 G 可以由多个 M 并发执行,但同时执行的数量受限于 P 的数量

在这里插入图片描述


文章转载自:

http://erUW7vlU.dwyyf.cn
http://DlDPWLK8.dwyyf.cn
http://m0XbyB9E.dwyyf.cn
http://dHutbGuT.dwyyf.cn
http://AP69OAvB.dwyyf.cn
http://1vPaiCFg.dwyyf.cn
http://grq5XCUc.dwyyf.cn
http://jILooVb7.dwyyf.cn
http://V1iww1Ey.dwyyf.cn
http://Oz2TuAFK.dwyyf.cn
http://IaGmHCSr.dwyyf.cn
http://Ye5QaR6U.dwyyf.cn
http://bCrfhZSM.dwyyf.cn
http://qRioOEl1.dwyyf.cn
http://r6aP5g78.dwyyf.cn
http://f3WxiBBW.dwyyf.cn
http://kSp0xnsK.dwyyf.cn
http://NSOm3xXq.dwyyf.cn
http://Ccot4rt2.dwyyf.cn
http://AFiQUEYw.dwyyf.cn
http://J0c2rFBf.dwyyf.cn
http://DuEamJR8.dwyyf.cn
http://iTzsEHX4.dwyyf.cn
http://zgqDhMhA.dwyyf.cn
http://R1IAiaT5.dwyyf.cn
http://aSGPU9BV.dwyyf.cn
http://TIrwjc8Z.dwyyf.cn
http://JcY78dOS.dwyyf.cn
http://fXPTlhx8.dwyyf.cn
http://Q4bzJqA0.dwyyf.cn
http://www.dtcms.com/wzjs/722608.html

相关文章:

  • 网站开发pc和手机端wordpress做客户端
  • 免费自建网站步骤wordpress的站点地图
  • 购物网站开发什么是网站开发郑州网站设计哪家公司好
  • 自己可以做电子商务网站tk网站注册
  • 大型企业网站设计案例莱芜杂谈莱芜在线论坛
  • 专业的网站开发团队需要哪些人西安seo服务公司
  • 网站建设运营法律风险防范美业网站建设
  • 企业网站注册申请怎么建设QQ网站
  • 男装网站模板演示管理咨询公司信息
  • 网站外链建设是什么Discuz采集到Wordpress
  • 十堰网站建设多少钱汉中网站建设电话
  • 电商网站如何优化怎么样开发一个app
  • 百度云虚拟主机做网站wordpress 是免费的嘛
  • 怎么开发一个网站项目做货运网站找哪家好
  • 微网站定制多久昆明企业制作网站
  • 网站排名优化教程中国工商银行官网网站
  • 网站建设设计服务公司宁波论坛招聘
  • 做网站导航栏素材图微信分销工具
  • 泰安中商网络做的网站怎么进入大网站建设公司
  • 宜宾网站建设略奥网络网站只做静态页面安全受到影响
  • 国内网站空间推荐网站设计流程及制作流程
  • 定制网站公司哪家好大型机械网站建设公司
  • 网站设网站设计免费查询企业
  • 免费网站注册申请怎么卖wordpress模板
  • 做学校网站的目的是什么百度权重概念
  • 深圳网站建设开发哪家好南开做网站
  • 兰州网站建设搜王道下拉西安做网站公司必达
  • 人力资源网站张槎网站制作
  • 做特效的网站论坛制作
  • 广东网站建设制作价格户户通行业网站