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

城阳网站开发公司贵阳网站制作系统

城阳网站开发公司,贵阳网站制作系统,网上注册公司的章程怎么下载出来,建设一个看电影的网站✍个人博客#xff1a;Pandaconda-CSDN博客 #x1f4e3;专栏地址#xff1a;http://t.csdnimg.cn/UWz06 #x1f4da;专栏简介#xff1a;在这个专栏中#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话#xff0c;欢迎点赞#x1f44d;收藏…  ✍个人博客Pandaconda-CSDN博客 专栏地址http://t.csdnimg.cn/UWz06 专栏简介在这个专栏中我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话欢迎点赞收藏您的支持就是我创作的最大动力 25. G o goroutine 和线程的区别? Go 的 goroutine 是一种轻量级的协程与传统的操作系统线程相比具有以下区别 1、调度模型 Go 语言中的 goroutine 采用的是 M:N 调度模型即 M 个 goroutine协程映射到 N 个系统线程上这些线程由 Go 运行时进行调度。而传统的线程则是采用的 1:1 调度模型即一个线程对应一个系统线程。 2、轻量级 Go 的 goroutine 比传统的线程更加轻量级创建和销毁 goroutine 的代价比较小且 goroutine 的初始栈大小只有几 KB而线程的栈大小通常要大得多。 3、内存占用 由于 goroutine 的内存占用比线程更小因此在同样的硬件资源下Go 程序可以运行更多的 goroutine。 4、通信机制 在 Go 中goroutine 之间的通信使用的是 ChannelChannel 可以避免传统线程中使用锁带来的复杂性和性能损失。 5、错误处理 在传统线程中如果一个线程抛出异常或崩溃那么整个进程都会被杀死。而在 Go 中当一个 goroutine 抛出 panic 时只有该 goroutine 会被终止不会影响其他 goroutine 和整个进程。 综上所述与传统的线程相比Go 的 goroutine 更加轻量级占用资源更少拥有更好的并发性能和更容易处理错误。这也是 Go 语言在并发编程中的优势所在。 26. G o 如何查看正在执行的 goroutine 数量? 程序中引入 pprof pakage 在程序中引入 pprof package import _ net/http/pprof 程序中开启 HTTP 监听服务 package main import (net/http_ net/http/pprof ) func main() {for i : 0; i 100; i {go func() {select {}}()}go func() {http.ListenAndServe(localhost:6060, nil)}()select {} } 分析 goroutine 文件 在命令行下执行 go tool pprof -http:1248 http://127.0.0.1:6060/debug/pprof/goroutine 会自动打开浏览器页面如下图所示 在图中可以清晰的看到 goroutine 的数量以及调用关系可以看到有 103 个 goroutine。 27. G o 如何控制并发的 goroutine 数量? 为什么要控制 goroutine 并发的数量 在开发过程中如果不对 goroutine 加以控制而进行滥用的话可能会导致服务整体崩溃。比如耗尽系统资源导致程序崩溃或者 CPU 使用率过高导致系统忙不过来。 用什么方法控制 goroutine 并发的数量 1. 有缓冲 channel 利用缓冲满时发送阻塞的特性。 package main import (fmtruntimetime ) var wg sync.WaitGroup{} func main() {// 模拟用户请求数量requestCount : 10fmt.Println(goroutine_num, runtime.NumGoroutine())// 管道长度即最大并发数ch : make(chan bool, 3)for i : 0; i requestCount; i {wg.Add(1)ch - truego Read(ch, i)}wg.Wait() } func Read(ch chan bool, i int) {fmt.Printf(goroutine_num: %d, go func: %d, runtime.NumGoroutine(), i)-chwg.Done() } 输出结果默认最多不超过 34-1个 goroutine 并发执行。 goroutine_num 1 goroutine_num: 4, go func: 1 goroutine_num: 4, go func: 3 goroutine_num: 4, go func: 2 goroutine_num: 4, go func: 0 goroutine_num: 4, go func: 4 goroutine_num: 4, go func: 5 goroutine_num: 4, go func: 6 goroutine_num: 4, go func: 8 goroutine_num: 4, go func: 9 goroutine_num: 4, go func: 7 2. 无 缓冲 channel 任务发送和执行分离指定消费者并发协程数。 package main import (fmtruntimesync ) var wg sync.WaitGroup{} func main() {// 模拟用户请求数量requestCount : 10fmt.Println(goroutine_num, runtime.NumGoroutine())ch : make(chan bool)for i : 0; i 3; i {go Read(ch, i)}for i : 0; i requestCount; i {wg.Add(1)ch - true}wg.Wait() } func Read(ch chan bool, i int) {for _ range ch {fmt.Printf(goroutine_num: %d, go func: %d, runtime.NumGoroutine(), i)wg.Done()} }
http://www.sczhlp.com/news/242991/

相关文章:

  • wix做网站流程讨债公司 做网站
  • 网站开发公司创业策划网站建设客户需求分析
  • 海建网站浙江省甲级设计院加盟
  • 注入漏洞网站源码备案的网站名称能重复备案吗
  • 单县建设局网站外贸网站建设哪个好
  • 建设门户网站所需营销网络的建设有哪些
  • 常州网站建设平台wordpress飘雪插件
  • 钢材公司网站建设电子商务营销方案
  • 做网站公司哪个比较好东莞seo推广
  • 郑州做网站优化成都装修建材网站建设
  • 大学生创业做创意宿舍装修网站优化网站的步骤
  • 免费文案素材网站寮步镇仿做网站
  • 加强学院网站的建设与管理学校网站建设与维护方案
  • 网站的优势和劣势中国移动官方网站
  • 橱柜衣柜做网站wordpress没登录窗口
  • 海外直邮购物网站凡科建站官网网站模板
  • 郑州郑州网站建设河南做网站公司做国外网站建设
  • 淄博网站制作建设优化网站开发需要用到哪些技术
  • wordpress地址栏显示ip本溪seo优化
  • 保定哪家做网站公司好网站建设的公司系统规划
  • 怎么建网站教程视频app简单模板网站制作时间
  • 网站是什么?wordpress黑帽插件
  • 网页模板网站模板百度平台商家订单查询
  • 建立网站需要多少钱首选y湖南岚鸿品牌美的企业微信网站
  • 做结构设计有没有自学的网站建设视频网站多少钱
  • 网站建设目录结构doc小公司管理软件
  • 做网站谁家做的好html教程下载
  • 怎样进入网站管理系统metro主题 wordpress
  • 营销型网站设计招聘湘潭网站建设 就找磐石网络
  • 网站备案拍照是什么wordpress用户同步