Thread vs Groutine
1.创建默认的stack的大小
- JDK5以后java Thread stack 默认是1M
- Groutine的stack初始化大小为2K
package goroutine
import (
"fmt"
"testing"
"time"
)
func TestGroutine(t *testing.T) {
for i:=0 ; i<10;i++{
go func(){
//此时i共享地址,造成竞态,需要加锁
fmt.Println(i)
}()
//内存拷贝
go func(i int) {
fmt.Println(i)
}(i)
}
time.Sleep(time.Millisecond * 50)
}
这篇博客探讨了Java线程与Go协程在默认栈大小上的差异。Java从JDK5开始,默认线程栈大小为1M,而Go的协程初始栈大小仅为2K。通过示例代码展示了Go中如何创建协程并讨论了共享变量时可能出现的竞态条件问题。
1万+

被折叠的 条评论
为什么被折叠?



