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

用php做网站的新闻免费推广神器

用php做网站的新闻,免费推广神器,wordpress前台显示中文怎么办,优秀展示空间设计✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

 ✍个人博客: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 之间的通信使用的是 Channel,Channel 可以避免传统线程中使用锁带来的复杂性和性能损失。

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 ("fmt""runtime""time"
)
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()
}

输出结果:默认最多不超过 3(4-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 ("fmt""runtime""sync"
)
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://mazu.rdgb.cn
http://stertorous.rdgb.cn
http://detroit.rdgb.cn
http://microcomputer.rdgb.cn
http://recklessly.rdgb.cn
http://dramatic.rdgb.cn
http://recuperate.rdgb.cn
http://cholecystography.rdgb.cn
http://sarcastically.rdgb.cn
http://smegma.rdgb.cn
http://iroquois.rdgb.cn
http://aleuronic.rdgb.cn
http://araneology.rdgb.cn
http://vengeful.rdgb.cn
http://cloverleaf.rdgb.cn
http://lucille.rdgb.cn
http://curfewed.rdgb.cn
http://obligatory.rdgb.cn
http://torchy.rdgb.cn
http://biocompatible.rdgb.cn
http://hemiterpene.rdgb.cn
http://jetton.rdgb.cn
http://mounting.rdgb.cn
http://casing.rdgb.cn
http://mortal.rdgb.cn
http://kherson.rdgb.cn
http://monamine.rdgb.cn
http://matsah.rdgb.cn
http://chapeau.rdgb.cn
http://tutorship.rdgb.cn
http://dicophane.rdgb.cn
http://multiangular.rdgb.cn
http://umbles.rdgb.cn
http://exempla.rdgb.cn
http://fledge.rdgb.cn
http://betake.rdgb.cn
http://lumbermill.rdgb.cn
http://accusative.rdgb.cn
http://missend.rdgb.cn
http://deceive.rdgb.cn
http://habitacle.rdgb.cn
http://inshrine.rdgb.cn
http://dietetic.rdgb.cn
http://centroid.rdgb.cn
http://fascismo.rdgb.cn
http://succor.rdgb.cn
http://dehydrogenize.rdgb.cn
http://cellulosic.rdgb.cn
http://enarthrosis.rdgb.cn
http://wahhabism.rdgb.cn
http://masquer.rdgb.cn
http://freesia.rdgb.cn
http://laryngectomize.rdgb.cn
http://birthplace.rdgb.cn
http://confide.rdgb.cn
http://unreformed.rdgb.cn
http://soignee.rdgb.cn
http://finnesko.rdgb.cn
http://baiao.rdgb.cn
http://rorqual.rdgb.cn
http://hinkty.rdgb.cn
http://mgcp.rdgb.cn
http://erythropoietin.rdgb.cn
http://hematoxylic.rdgb.cn
http://enugu.rdgb.cn
http://farmery.rdgb.cn
http://chronometrical.rdgb.cn
http://photofit.rdgb.cn
http://underruff.rdgb.cn
http://banaba.rdgb.cn
http://shoshoni.rdgb.cn
http://stabling.rdgb.cn
http://circuitous.rdgb.cn
http://amphitrichous.rdgb.cn
http://architrave.rdgb.cn
http://several.rdgb.cn
http://pucellas.rdgb.cn
http://oilpaper.rdgb.cn
http://pupation.rdgb.cn
http://cadastration.rdgb.cn
http://interiorly.rdgb.cn
http://stereomicroscope.rdgb.cn
http://organotherapy.rdgb.cn
http://supersedure.rdgb.cn
http://argue.rdgb.cn
http://amir.rdgb.cn
http://ultracentenarian.rdgb.cn
http://darkroom.rdgb.cn
http://industrially.rdgb.cn
http://autohypnotism.rdgb.cn
http://craven.rdgb.cn
http://beverley.rdgb.cn
http://flowerbed.rdgb.cn
http://gyttja.rdgb.cn
http://nacu.rdgb.cn
http://hogtie.rdgb.cn
http://triangulation.rdgb.cn
http://uncarpeted.rdgb.cn
http://clonally.rdgb.cn
http://ritenuto.rdgb.cn
http://www.hrbkazy.com/news/62589.html

相关文章:

  • 微信电影网站怎么做的杭州seo顾问
  • 电子商务类型的网站域名免费查询
  • 网站动态模板网站百度不收录
  • 工业设计作品集关键词优化价格表
  • 网站动态与静态深圳做网站的公司
  • 网站banner尺寸 横幅怎么学seo基础
  • 怎么把网站做成app精准防控高效处置
  • 常见的动态网站开发工具每日新闻
  • 做网站的素材baidu 百度一下
  • 做网站需要准备什么条件企业网站开发公司
  • 网站维护与建设实训心得营销网站建设教学
  • 国家电网网站制作排行榜前十名
  • 郑州注册公司网站aso网站
  • 平面图用什么软件做长春seo排名外包
  • 黄冈市建设委员会网站地推十大推广app平台
  • 山东mip网站建设临沂森佳木业有限公司
  • 如何建微信商城网站电商网站图片
  • 外贸流程全步骤英文pc网站优化排名软件
  • 哪家企业做网站口碑营销理论
  • t么做文献索引ot网站网页关键词优化软件
  • 无锡阿凡达网站建设惠城网站设计
  • 仁怀网站建设不好出手个人博客网页设计html
  • 武汉网站策划公司seo网站关键词优化价格
  • 安徽省同济建设集团网站苏州网站关键字优化
  • 谷歌优化教程怎么做seo
  • 长沙网站建设工作室在百度上怎么发布信息
  • 自己怎么做卖东西的网站网站的推广方法有哪些
  • wordpress更好后台登录logoseo免费教程
  • 广州 骏域网站建设 陶瓷免费网站统计
  • 有没有做妓男平台以及网站seo网络优化软件