初级会员
  • 第 71889 位会员
  • don178
  • 2022-02-01 10:26:41
  • Offline
  • 19 29

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • #2 @ShixiangWang 是全局的,go目前只有全局安装
  • 在GMP中,一个G(goroutinue)创建后会优先进入到 P 的本地队列中进行执行。如果这个G又创建了一个G,则这个G会存放在P的 runnext 字段中(P会优先执行runnext中的G)。当runnext中已经有了G时,这个G会被挤到P的本地队列中。 代码运行 : main-G运行 创建 G-a(输出小写字母的goroutinue) 此时唯一一个P的runnext为空,G-a进入runnext。创建 G-A(输出大写字母的goroutinue),此时runnext已有G-a,则会将G-a挤到P的本地队列中。此时的runnext存放的是G-A。代码执行到wg.wait , 主G让出M,执行runnext中的G-A,输出大写字母,执行完毕 runnext为空,执行本地队列中的G-a 输出小写字母。
  • 评论了面试题 Go每日一题(60)
    细啊
  • if p == 2{} 这个里面没有return,赋值后for 还在运行,重新给 tempByte写入了新数据,tempByte和partByte又是浅拷贝,会相互影响。
  • ```golang func main() { a2 := "12435" //想用过这个函数过去 给他重复赋值 a(&a2) // // 这 a2 的值 为5 应该怎么做呢 fmt.Println(a2) } func a(ap interface{}) { if newAp,ok := ap.(*string);ok{ *newAp = "5" } } ```