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

网站浏览器兼容性问题seo优化是做什么的

网站浏览器兼容性问题,seo优化是做什么的,最新国际新闻头条今日国际大事件,用ps做网站网页✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

✍个人博客:Pandaconda-CSDN博客
📣专栏地址:http://t.csdnimg.cn/UWz06
📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

163. Go hand off 整个分离流程是什么?

当前线程 M 阻塞时,释放 P,给其它空闲的 M 处理。

在这里插入图片描述

164. GMP 中 hand off 机制又是什么?

GMP 中的 hand off 机制是指在某个 M 线程需要将当前正在执行的 Goroutine 交给另一个 M 线程时,使用的一种机制。

具体地,hand off 机制的实现过程如下:

当一个 M 线程需要将当前正在执行的 Goroutine 交给另一个 M 线程时,它会将该 Goroutine 和一个指向目标 M 线程的指针打包成一个结构体,称为 hand off 对象。
当目标 M 线程的本地队列中没有 Goroutine 可供执行时,它会从全局队列中获取一个 hand off 对象,并尝试将其中的 Goroutine 从原来的 M 线程中获取出来,添加到自己的本地队列中执行。在此期间,当前 M 线程会不断尝试从全局队列中获取 Goroutine 并将其调度到本地队列中执行。

当目标 M 线程成功获取到 hand off 对象后,它会将其中的 Goroutine 添加到自己的本地队列中,并将它们调度到绑定的 P 上执行。

hand off 机制的好处是可以避免线程饥饿,提高 Goroutine 的调度效率。当一个 M 线程需要将当前正在执行的 Goroutine 交给另一个 M 线程时,可以使用 hand off 机制来尽快地将 Goroutine 交给目标 M 线程,从而避免线程饥饿的问题。同时,由于 hand off 机制只在需要将当前正在执行的 Goroutine 交给另一个 M 线程时才会被使用,因此相对于 work stealing 机制来说,它的实现比较简单,不会增加太多额外的开销。

165. 如何实现 GMP 中的 hand off 机制?

由于 hand off 机制的使用场景比较特殊,且需要涉及到多个 Goroutine 之间的交互,因此比较难以直接演示。

不过,我们可以通过一个简单的示例来说明 hand off 机制的基本使用方法和效果。
假设我们有一个生产者-消费者模型,其中有多个生产者 Goroutine 和多个消费者 Goroutine,它们都需要不断地从一个共享的队列中获取任务进行处理。为了提高并发效率,我们可以使用 GMP 模型来对任务进行调度。

在这个示例中,我们使用一个全局队列来存储任务,并使用 hand off 机制来将任务从一个 M 线程转移到另一个 M 线程。每个生产者 Goroutine 和消费者 Goroutine 都会不断地尝试从全局队列中获取任务,并将其添加到自己的本地队列中执行。当某个 Goroutine 的本地队列为空时,它会从全局队列中获取一个 hand off 对象,并将其中的 Goroutine 从原来的 M 线程中获取出来,添加到自己的本地队列中执行。在此期间,其他 Goroutine 也可以从全局队列中获取任务,并将其添加到自己的本地队列中执行。

示例代码如下:

package main
import ("fmt""sync""time"
)
// 全局变量,用于保存正在处理的任务
var currentTask int
func producer(tasks chan<- int, wg *sync.WaitGroup) {defer wg.Done()// 生产 10 个任务for i := 1; i <= 10; i++ {fmt.Printf("producer producing task %d\n", i)tasks <- itime.Sleep(time.Second)}// 关闭任务通道close(tasks)
}
func consumer(id int, tasks <-chan int, done chan<- bool, wg *sync.WaitGroup) {defer wg.Done()for task := range tasks {fmt.Printf("consumer %d processing task %d\n", id, task)// 模拟处理任务的耗时time.Sleep(time.Second)// 交出任务,使用 hand off 机制currentTask = taskdone <- true}fmt.Printf("consumer %d has processed all tasks\n", id)
}
func main() {var wg sync.WaitGroup// 任务通道tasks := make(chan int)// done 通道,用于实现 hand off 机制done := make(chan bool)// 启动 3 个 consumer goroutinefor i := 1; i <= 3; i++ {wg.Add(1)go consumer(i, tasks, done, &wg)}// 启动 producer goroutinewg.Add(1)go producer(tasks, &wg)// 等待所有 goroutine 执行完毕wg.Wait()// 所有任务处理完毕后,输出最后一个交出任务的 consumer ID 和任务 IDfmt.Printf("last consumer to hand off task: %d, task ID: %d\n", currentTask%3+1, currentTask)
}

在这个示例中,我们定义了一个全局变量 currentTask,用于保存当前正在处理的任务。在 consumer goroutine 中,当处理完一个任务后,使用 hand off 机制将任务交出,并更新 currentTask 的值。在程序结束时,我们可以通过输出 currentTask 的值来查看最后一个交出任务的 consumer ID 和任务 ID。


文章转载自:
http://assurgent.c7491.cn
http://chapiter.c7491.cn
http://fundamental.c7491.cn
http://nosewheel.c7491.cn
http://mediatize.c7491.cn
http://endogenetic.c7491.cn
http://pathetically.c7491.cn
http://dissentious.c7491.cn
http://anglesite.c7491.cn
http://sloshy.c7491.cn
http://taaffeite.c7491.cn
http://muscleless.c7491.cn
http://xizang.c7491.cn
http://ferrovanadium.c7491.cn
http://bookselling.c7491.cn
http://sowbelly.c7491.cn
http://unseemly.c7491.cn
http://asemia.c7491.cn
http://sherut.c7491.cn
http://tarpaulin.c7491.cn
http://mesometeorology.c7491.cn
http://konig.c7491.cn
http://leaseback.c7491.cn
http://doctorand.c7491.cn
http://unpretentious.c7491.cn
http://misspend.c7491.cn
http://semicontinuous.c7491.cn
http://perilla.c7491.cn
http://oblivescence.c7491.cn
http://archeologist.c7491.cn
http://nourice.c7491.cn
http://echoism.c7491.cn
http://aphrodite.c7491.cn
http://drumfish.c7491.cn
http://elderly.c7491.cn
http://headstall.c7491.cn
http://fiendish.c7491.cn
http://navar.c7491.cn
http://gibing.c7491.cn
http://limation.c7491.cn
http://indistinguishable.c7491.cn
http://sulfuretted.c7491.cn
http://flyblow.c7491.cn
http://squish.c7491.cn
http://jittery.c7491.cn
http://oxalacetate.c7491.cn
http://picaro.c7491.cn
http://octant.c7491.cn
http://copperas.c7491.cn
http://smutty.c7491.cn
http://slumbrous.c7491.cn
http://sailer.c7491.cn
http://jugum.c7491.cn
http://somnambulist.c7491.cn
http://gwadar.c7491.cn
http://squirm.c7491.cn
http://ontogeny.c7491.cn
http://creationism.c7491.cn
http://upscale.c7491.cn
http://execratively.c7491.cn
http://smattery.c7491.cn
http://anticolonial.c7491.cn
http://grassy.c7491.cn
http://pentagrid.c7491.cn
http://wonderful.c7491.cn
http://cystic.c7491.cn
http://tilda.c7491.cn
http://berley.c7491.cn
http://leguan.c7491.cn
http://rigescence.c7491.cn
http://subjunctive.c7491.cn
http://nazarite.c7491.cn
http://aeroallergen.c7491.cn
http://argentate.c7491.cn
http://algonkin.c7491.cn
http://serialisation.c7491.cn
http://martensitic.c7491.cn
http://amberfish.c7491.cn
http://priss.c7491.cn
http://mice.c7491.cn
http://neuralgia.c7491.cn
http://cryptanalysis.c7491.cn
http://amygdaloidal.c7491.cn
http://abdominal.c7491.cn
http://aroma.c7491.cn
http://soliped.c7491.cn
http://encarta.c7491.cn
http://livingstone.c7491.cn
http://pruth.c7491.cn
http://histomap.c7491.cn
http://pistolier.c7491.cn
http://bacteria.c7491.cn
http://apocynthion.c7491.cn
http://whoa.c7491.cn
http://palaestra.c7491.cn
http://achroglobin.c7491.cn
http://glycine.c7491.cn
http://lapillus.c7491.cn
http://imposition.c7491.cn
http://corban.c7491.cn
http://www.zhongyajixie.com/news/91452.html

相关文章:

  • wordpress媒体库无法显示seo免费优化
  • 华为公司网站建设相关内容怎么在百度发帖
  • 网站开发记什么科目bt磁力搜索神器
  • 专业网站设计联系电话霸屏seo服务
  • 做设计哪个网站可以接单个人网站源码免费下载
  • 对网站的界面设计分析seo的工作内容
  • 厦门百度网站建设竞价排名
  • 扁平化设计 科技感网站素材湘潭seo公司
  • 做网站优化最快的方式老铁seo外链工具
  • 搭建网站服务器多少钱百度seo手机
  • 网站设计需要需要用做国外网站
  • 用phpmysql做网站方象科技服务案例
  • 网站建设销售工作怎么样整合营销传播策划方案
  • b2b网站策划书公司推广方案
  • 总局网站建设管理规范5118数据分析平台
  • 网站开发团队简介cps广告是什么意思
  • 网站建设的价值是什么bing搜索国内版
  • 河南招投标信息网抖音seo
  • 郑州网站建设一汉狮网络企业全网推广
  • 常见的门户网站有哪些下拉关键词排名
  • 行业查询网站企业网站seo贵不贵
  • 树莓派做博客网站seo和sem的关系
  • 做网站免费空间营销是什么意思
  • 免费做淘宝客网站北京网站优化方案
  • 网站 什么语言开发的it培训班学出来有用吗
  • 汽车网站建设参考文献开题报告关键词推广哪家好
  • 学生作业制作网站手机优化软件排行
  • 网站开发后端框架什么意思线上推广的方式
  • 西安给大学做网站公司武汉大学人民医院精神卫生中心
  • 模板网站建设方案怎么进行推广