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

优易官方网站山东seo推广公司

优易官方网站,山东seo推广公司,wordpress加入图片,xampp里wordpress安装教程文章目录 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://www.dtcms.com/wzjs/510403.html

相关文章:

  • 出行南宁app软件下载徐州百度seo排名优化
  • 淮阴网站建设营销网站建设哪家快
  • 做circrna的网站宁波seo深度优化平台
  • 中高端网站建设软件开发外包
  • 济南定机票网站建设东莞互联网推广
  • 北京做网站制作公司化妆品营销推广方案
  • 福州 网站建设专注于seo顾问
  • 怎么弄免费的空间做网站新闻头条 今天
  • 有可以做国外支付系统的网站吗嘉兴seo
  • 建站时长是什么原因造成的seo接单平台有哪些
  • 什么是网站建设需求朋友圈广告30元 1000次
  • 网站公告怎么做培训机构网站
  • 网站开发 国际网站网站运营推广选择乐云seo
  • 网站开发 发表文章网页设计与制作考试试题及答案
  • 电子商务企业网站建设规划网络营销推广方法
  • 1高端网站建设新手小白怎么做跨境电商
  • 常州知名做网站服务今日新闻播报
  • 做网站的服务器哪个系统好企业培训课程种类
  • 网站搜索怎么做的百度网盘客服电话24小时
  • 武汉网站制作哪家强seo首页排名优化
  • 临淄辛店今天招聘信息专业seo推广
  • 山东网站备案时间南昌seo网站管理
  • 编程网站scratch在线使用长沙网站包年优化
  • 青海网站建设与制作南宁seo渠道哪家好
  • 建设厅官方网站河南自媒体营销
  • 网站建行接口自助搭建平台
  • dw php网站建设视频教程seo搜索优化待遇
  • 农业电商网站建设方案小说关键词生成器
  • 企业做网站被骗百度搜索引擎关键词
  • 网站做视频的软件有哪些深圳网络推广哪家比较好