package
0.0.0-20240917151801-3e295c8ed30c
Repository: https://github.com/w3liu/algorithm.git
Documentation: pkg.go.dev

# README

  • 与Erlang不同的事Go语言的Goroutine之间是共享内存的。
  • 每个系统级线程都会有一个固定大小的栈(一般可能是2MB)。
  • 一个goroutine会以一个很小的栈启动(可能是2KB或4KB),最大可以支持1GB。
  • 不同的goroutine之间,不满足一致性内存模型。
  • 如果某个包被多次导入的话,在执行的时候只会导入一次。
  • 所有的init函数和main函数都是在主线程完成,他们是满足顺序一致性模型的。
  • 严谨的并发程序的正确性不应该是依赖于CPU的执行速度和休眠时间等不靠谱的因素。
  • 严谨的并发应该是可以静态推倒出结果的:根据线程内顺序一致性,结合channel和sync同步时间的可排序性来推倒,最终完成各个线程各段代码的偏序关系排序。
  • 解决同步问题的思路是相同的:使用显式的同步。