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

定制型网站设计报价表广州网站建设出名 乐云践新

定制型网站设计报价表,广州网站建设出名 乐云践新,世界500强企业招聘网站,代做网站的公司数据结构与底层实现 Goroutine结构体 stack#xff08;栈内存范围#xff09; 结构体类型#xff0c;包含 lo#xff08;低地址#xff09;和 hi#xff08;高地址#xff09;两个 uintptr 字段#xff0c;描述 Goroutine 的栈内存区间 [lo, hi)。初始栈大小为 2KB栈内存范围 结构体类型包含 lo低地址和 hi高地址两个 uintptr 字段描述 Goroutine 的栈内存区间 [lo, hi)。初始栈大小为 2KB可动态扩容至 1GB。 mMachine 绑定 指向当前运行此 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.loStackGuard 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.loStackGuard 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 were 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://www.dnsts.com.cn/news/54011.html

相关文章:

  • 企业网站建设一条龙服务内容中国纪检监察报网
  • 做正规小说网站有哪些运营的网站
  • 快速生成网站程序不用购买域名做网站
  • 积分商城网站开发住房与住房建设部网站
  • 网站代理如何做电影网页设计与制作教程
  • 网站备案去哪里备案sns社交网站有哪些
  • 微博网站可以做兼职吗wordpress获取新密码错误
  • 网站推广文案网站建设7个基
  • 深圳企业做网站公司国内f型网页布局的网站
  • 盐城做企业网站哪家好163免费邮箱注册
  • php网站留言板模板wordpress 修改插件
  • 建站视频wordpress+布局插件
  • 投资公司网站建设成都微信网站建设
  • 怎样创建网站快捷方式国外公共空间设计网站
  • 做网站网站代理犯法吗长沙网站建设大概多少钱
  • 网站是一个链接的页面结合吗网站开发培训光山
  • 新乡网站建设公司黄页html5新手做的网页
  • 网站建设论文选题聚名网官网登录入口
  • 医疗网站如何做优化网站布局模式
  • 怎么给网站做链接屏蔽阿里云虚拟主机装WordPress
  • 网站建设合同属于印花税的哪个税目acaa网页设计师
  • 厦门的企业网站知名的饰品行业网站开发
  • 做网站ui黄浦区网站建设公司
  • 网站路径优化网站建设公司怎么
  • 做好网站建设工作赣州市南康区建设局网站
  • 网站维护的基本内容包括哪些百度一下你就知道移动官网
  • 松原建设局网站网站后台如何取消验证码登陆
  • 网页设计旅游网站源代码免费建设厅网站2015154
  • 做网站首页置顶多少钱沈阳建设工程信息网举报
  • html 网站模板下载c2c网站的功能