栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从goroutine返回值会发生什么

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从goroutine返回值会发生什么

快速查看一下组装输出显示

$ go build -gcflags -S z.go

getNumber()
函数确实将其结果存储到堆栈中

"".getNumber t=1 size=16 value=0 args=0x10 locals=0x0    0x0000 00000 (z.go:5)   TEXT    "".getNumber+0(SB),4,$0-16    0x0000 00000 (z.go:6)   MOVQ    "".i+8(FP),BX    0x0005 00005 (z.go:6)   MOVQ    BX,"".~r1+16(FP)    0x000a 00010 (z.go:6)   RET ,

因此,当从goroutine调用它时,它会将结果存储到堆栈中。但是,这是一个新的堆栈,当goroutine结束时,该堆栈会被破坏,因此无法获取返回值。

"".main t=1 size=96 value=0 args=0x0 locals=0x18    0x0000 00000 (z.go:9)   TEXT    "".main+0(SB),$24-0    0x0000 00000 (z.go:9)   MOVQ    (TLS),CX    0x0009 00009 (z.go:9)   CMPQ    SP,16(CX)    0x000d 00013 (z.go:9)   JHI ,22    0x000f 00015 (z.go:9)   CALL    ,runtime.morestack_noctxt(SB)    0x0014 00020 (z.go:9)   JMP ,0    0x0016 00022 (z.go:9)   SUBQ    $24,SP    0x001a 00026 (z.go:10)  MOVQ    $0,AX    0x001c 00028 (z.go:10)  CMPQ    AX,$10    0x0020 00032 (z.go:10)  JGE $0,74    0x0022 00034 (z.go:11)  MOVQ    AX,"".i+16(SP)    0x0027 00039 (z.go:11)  MOVQ    AX,(SP)    0x002b 00043 (z.go:11)  MOVQ    $"".getNumber·f+0(SB),CX    0x0032 00050 (z.go:11)  PUSHQ   CX,    0x0033 00051 (z.go:11)  PUSHQ   $16,    0x0035 00053 (z.go:11)  PCDATA  $0,$0    0x0035 00053 (z.go:11)  CALL    ,runtime.newproc(SB)    0x003a 00058 (z.go:11)  POPQ    ,CX    0x003b 00059 (z.go:11)  POPQ    ,CX    0x003c 00060 (z.go:10)  MOVQ    "".i+16(SP),AX    0x0041 00065 (z.go:10)  INCQ    ,AX    0x0044 00068 (z.go:10)  NOP ,    0x0044 00068 (z.go:10)  CMPQ    AX,$10    0x0048 00072 (z.go:10)  JLT $0,34    0x004a 00074 (z.go:13)  MOVQ    $5,(SP)    0x0052 00082 (z.go:13)  PCDATA  $0,$0    0x0052 00082 (z.go:13)  CALL    ,time.Sleep(SB)    0x0057 00087 (z.go:14)  ADDQ    $24,SP    0x005b 00091 (z.go:14)  RET ,

但是,无法检索这些结果。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426844.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号