golang为什么用协程而不是线程

Posted -_-void

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang为什么用协程而不是线程相关的知识,希望对你有一定的参考价值。

  1. 当协程阻塞的时候,运行时会自动将同一操作系统线程上的其他协程移动到另一个可运行的线程上,这样这些协程就不会阻塞,并且这个操作对开发人员来说是透明的。
  2. 调用协程的开销很小,大概只在内存的栈区用几KB,而且通常几KB就够用了。即便不够用,运行时也会自动在栈区多分配点。
  3. 每次方法调用平均只占用3个CPU指令。

数据来源:https://golang.org/doc/faq

以上是关于golang为什么用协程而不是线程的主要内容,如果未能解决你的问题,请参考以下文章

Unity里做等待只能用协程吗

golang 协程关闭——谁敢说没踩过坑

golang 协程关闭——谁敢说没踩过坑

golang中最大协程数的限制(线程)

golang协程同步的几种方法

Python基础-协程