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

门户类网站有哪些张雪峰谈电子商务专业

门户类网站有哪些,张雪峰谈电子商务专业,海报设计图片大全,wordpress搜索不到一、什么是协程(Goroutine)? 简单来说,协程是由 Go 语言运行时管理的轻量级线程。相比系统线程,它的调度开销极小,内存占用非常少(默认只需 2KB 栈空间)。 你可以在一个程序中轻松…

一、什么是协程(Goroutine)?

简单来说,协程是由 Go 语言运行时管理的轻量级线程。相比系统线程,它的调度开销极小,内存占用非常少(默认只需 2KB 栈空间)。

你可以在一个程序中轻松创建成千上万个 goroutine,而不会像传统线程那样造成系统负担。

二、如何创建一个协程

只需要在函数调用前加上 go 关键字,Go 就会在新的协程中异步执行该函数:

package mainimport ("fmt""time"
)func sayHello() {fmt.Println("Hello from goroutine")
}func main() {go sayHello() // 启动一个新的协程time.Sleep(1 * time.Second) // 给协程执行的时间
}

如果不加 time.Sleep主线程可能直接退出,协程还没执行完,即不会输出"Hello from goroutine"。

三、多个协程并发执行

我们可以轻松开启多个任务同时运行:

package mainimport ("fmt""time"
)func main() {for i := 0; i < 5; i++ {go func(i int) {fmt.Printf("Worker %d is running\n", i)}(i)}time.Sleep(1 * time.Second)
}

输出顺序是不确定的,因为每个协程的调度是由 Go 运行时决定的。

四、协程与主线程的关系

主函数是 Go 程序的入口,也是主协程。一旦 main() 执行完毕,程序就退出,即使其他协程还在执行

为了解决这个问题,我们常用 sync.WaitGroup 等机制来等待所有协程结束:

package mainimport ("fmt""sync"
)var wg sync.WaitGroupfunc worker(id int) {defer wg.Done()fmt.Printf("Worker %d done\n", id)
}func main() {for i := 1; i <= 3; i++ {wg.Add(1)go worker(i)}wg.Wait() // 等待所有 goroutine 完成
}

五、goroutine 的注意事项

闭包中的变量捕获问题

package mainimport ("fmt""sync""time"
)var wg sync.WaitGroupfunc main() {wg.Add(3)for i := 1; i <= 3; i++ {go func() {time.Sleep(time.Second)fmt.Println(i)wg.Done()}()}wg.Wait() // 等待所有 goroutine 完成
}

正确做法是将变量作为参数传进去:

package mainimport ("fmt""sync""time"
)var wg sync.WaitGroupfunc main() {wg.Add(3)for i := 1; i <= 3; i++ {go func(val int) {time.Sleep(time.Second)fmt.Println(val)wg.Done()}(i)}wg.Wait() // 等待所有 goroutine 完成
}

http://www.dtcms.com/wzjs/599676.html

相关文章:

  • 谷歌下载安装南昌seo排名优化
  • 南通专业网站制作畜牧业网站模板
  • 用哪个网站做相册视频湛江建网站
  • 厦门网站建设合同零基础做网站
  • 曲靖网站建设win7优化教程
  • ks2e做网站小程序代理注册
  • 北京网站设计联系电话定南建设银行网站点
  • 网站建设 技术方案模板搭建一个商城需要多少钱
  • 做调查的网站推荐重庆建筑行业认证培训网
  • 网站通cms广州建设银行招聘网站
  • 免费网站安全软件大全免费下载集约化网站数据库建设规范
  • 网站开发方向下列哪个不是常用的网页制作工具
  • 中国建设银行吉林省分行官网站如何用百度云文件做网站
  • 网站你应该知道我说的是什么吧网站直接跳转
  • 做一个网站的总结网站排名 各因素
  • 网站站内搜索怎么做全国哪几家做5G网站公司
  • 网站建设干货秦州区住房和城乡建设局网站
  • 工商局网站怎么做增项优秀的网页设计案例
  • 设计素材网站p2p 网站开发
  • 网站直播怎么做的企业网站推广怎么做
  • 网站建设创业公司策划方案wordpress 没有样式表
  • 医疗网站建设服务产品设计网站制作
  • 文化馆网站数字化建设介绍网站快速排名推荐
  • 35个好的网站设计wordpress插件dx-seo
  • 网站怎么升级天津中冀建设集团有限公司网站
  • 哪个网站做的win10系统西安seo顾问 顺时网络
  • 抚州公司做网站制作网站需要的技术
  • 威海网站开发公司电话天堂 最新版中文在线
  • 南京网站制作设计公司原型图网站
  • 电商网站备案网站建设宽带