https://talks.golang.org/2015/go-gc.pdf
https://www.oschina.net/translate/go-gc-solving-the-latency-problem-in-go-1-5?comments&p=1
Go:
-
成千上万的 goroutines
-
使用管道进行同步
-
执行 go 的运行时间,使 go 和用户同步
-
空间位置的控制 (可以嵌入结构,内部指针 (&foo.field))
Java:
-
数十个Java线程
-
使用对象/锁的同步
-
由C实现的运行时间
-
对象连接指针
最大的区别在于空间位置的问题。 在Java中, 一切都是指针,然而 Go 能够让你在线程中嵌入另一个线程。以下的多层指针严重地导致了垃圾回收器的很多问题。
https://learnku.com/docs/go-blog/go15gc/6528