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

郑州网站建设出名吗?推广公司新形象的营销支出

郑州网站建设出名吗?,推广公司新形象的营销支出,百度百家号注册,微信公众号开发微网站开发数据结构与底层实现 Goroutine结构体 stack(栈内存范围) 结构体类型,包含 lo(低地址)和 hi(高地址)两个 uintptr 字段,描述 Goroutine 的栈内存区间 [lo, hi)。初始栈大小为 2KB&a…

数据结构与底层实现

Goroutine结构体

stack(栈内存范围)
结构体类型,包含 lo(低地址)和 hi(高地址)两个 uintptr 字段,描述 Goroutine 的栈内存区间 [lo, hi)。初始栈大小为 2KB,可动态扩容至 1GB。

m(Machine 绑定)
指向当前运行此 Goroutine 的内核线程(M)。调度器通过 M 将 Goroutine 映射到操作系统线程。

_panic 和 _defer(异常与延迟调用链)

  • _panic:指向当前最内层的 panic 结构体链表,处理异常传播。
  • _defer:指向延迟调用(defer)链表,按后进先出(LIFO)顺序执行清理操作。
type g struct {// Stack parameters.// stack describes the actual stack memory: [stack.lo, stack.hi).// stackguard0 is the stack pointer compared in the Go stack growth prologue.// It is stack.lo+StackGuard normally, but can be StackPreempt to trigger a preemption.// stackguard1 is the stack pointer compared in the //go:systemstack stack growth prologue.// It is stack.lo+StackGuard on g0 and gsignal stacks.// It is ~0 on other goroutine stacks, to trigger a call to morestackc (and crash).stack       stack   // offset known to runtime/cgostackguard0 uintptr // offset known to liblinkstackguard1 uintptr // offset known to liblink_panic    *_panic // innermost panic - offset known to liblink_defer    *_defer // innermost deferm         *m      // current m; offset known to arm liblinksched     gobuf......
}

panic结构体

从上述Goroutine结构体的定义,我们可以发现每一个Goroutine维护一个panic的链表,panic存储在栈上。

// _panic 保存了一个活跃的 panic 信息。// _panic 的值必须仅存在于栈上。// argp 和 link 字段是栈指针,但在栈增长时无需特殊处理:
// 由于它们是指针类型且 _panic 值仅存在于栈上,
// 常规的栈指针调整机制会自动处理这些字段。
type _panic struct {argp unsafe.Pointer // pointer to arguments of deferred call run during panic; cannot move - known to liblinkarg  any            // argument to paniclink *_panic        // link to earlier panic// startPC and startSP track where _panic.start was called.startPC uintptrstartSP unsafe.Pointer// The current stack frame that we're running deferred calls for.sp unsafe.Pointerlr uintptrfp unsafe.Pointer// retpc stores the PC where the panic should jump back to, if the// function last returned by _panic.next() recovers the panic.retpc uintptr// Extra state for handling open-coded defers.deferBitsPtr *uint8slotsPtr     unsafe.Pointerrecovered   bool // whether this panic has been recoveredgoexit      booldeferreturn bool
}

注意事项

golang中每个goroutine维护自己的panic信息,并不是全局的,所以,如果需要捕获panic信息需要在每个goroutine中处理。

所以,在下面的这个案例中recover不能捕获到panic信息。如果需要捕获到,需要在每个协程中都执行recover的逻辑。

func main() {defer func() {if r := recover(); r != nil {log.Printf("Recovered from panic: %v", r)os.Exit(1)}}()// 业务代码...go func() {testPanic()}()time.Sleep(1 * time.Second)
}


文章转载自:

http://CzqF7IEf.pqqhL.cn
http://2cHLldz1.pqqhL.cn
http://LPP3FKYo.pqqhL.cn
http://ddmzwo6j.pqqhL.cn
http://XzeknAMg.pqqhL.cn
http://xHxCIBYt.pqqhL.cn
http://CcMIn28q.pqqhL.cn
http://w6jniuNW.pqqhL.cn
http://2RN4lh55.pqqhL.cn
http://36XhFbpO.pqqhL.cn
http://zHKvVJrr.pqqhL.cn
http://rQ7awWdH.pqqhL.cn
http://0ZCEEolu.pqqhL.cn
http://Lv4a9pzC.pqqhL.cn
http://4NdF3efR.pqqhL.cn
http://nw8AA88O.pqqhL.cn
http://qEIv06pq.pqqhL.cn
http://OOUM2V2f.pqqhL.cn
http://VgsJ6N7W.pqqhL.cn
http://uATGctna.pqqhL.cn
http://OW0Wmtj4.pqqhL.cn
http://e1mbP3fm.pqqhL.cn
http://qeir3CaU.pqqhL.cn
http://MvhnFzBD.pqqhL.cn
http://URelVFwp.pqqhL.cn
http://kpQh1Ul1.pqqhL.cn
http://T6QSvwnA.pqqhL.cn
http://qid87yJW.pqqhL.cn
http://Ze8HUEDI.pqqhL.cn
http://MSbdgffm.pqqhL.cn
http://www.dtcms.com/wzjs/729053.html

相关文章:

  • index.html网站怎么做济南 手机网站制作
  • dedecms wap网站模板下载网页制作什么软件好
  • 商派商城网站建设二次开发我公司要网站建设
  • 哪里有个人做网站的河南省建设行业证书查询网站
  • 如何联系网站做网站诱导网站
  • 如何做好区县外宣网站建设网站如何注销
  • 建设工程材料登记备案申请网站网站国际联网备案
  • 温州专业网站开发网站设计高端手机排行榜2023
  • php网站开发百度云网站内部seo优化包括
  • 主题网站设计建筑培训中心
  • 网站建设和托管短视频剪辑培训学校
  • 一级a做爰片视频免费观看网站凡客诚品售后服务官方
  • 迁安市住房和城乡建设局网站网站服务器出错了怎么办
  • 企业建设网站维护wordpress get_most_viewed
  • dz网站模板 首页显示内容甘肃省建设厅查询网站
  • 电商网站的意义老河口网站
  • 设备电商网站模板建网站金坛哪家强?
  • 做一个网站花费多少钱外贸 wordpress英文版
  • 河南住房城乡建设部网站设计工作室网站
  • 网站建设的看法有哪些平面设计培训要多久
  • 企业网站的开发wordpress 邮件投稿
  • 手机触屏网站开发教程华北冶建工程建设有限公司网站
  • 西安网站制作工作室小程序api是什么
  • 怎么建设一个自己微信网站营业执照注册官网
  • 企业网站的建设流程包含哪些环节html5搭建手机网站
  • 网站建设 汇卓专业设计素材网站
  • 手机网站收录虚拟主机安装wordpress
  • 长春网站优化策略做素材网站存储
  • 郑州网站建设制作最专业的房地产网站建设
  • 校园网站建设培训中学校园网网站建设规划书