go的协程
goroutine
goroutine是与其他函数或方法同时进行的函数和方法。可以被认为是轻量级的线程,创建goroutine的成本很小,他就是一段代码,一个函数入口。以及在堆上为其分配的一个堆栈(初始大小为4k,会随着程序的执行自动增长删除)。
优势
- 与线程相比所占空间小成本低,可以根据应用程序的需要增长和收缩。线程中大小必须指定且固定
- goroutine被多路复用到较少的os线程上。一个程序中可能只有一个线程和数千个goroutines
- 当使用goroutines访问共享内存时,通过设计的通道可以防止竞态条件发生。通道可以被认为是goroutines通信的管道
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。