goroutine-协程-线程-进程
区别
协程 coroutine 是 python、java 中都有的概念。在内核态不切换,在用户态切换(除非有 IO 操作去内核态运行)。
Goroutine是一个与其他goroutines 并发运行在同一地址空间的Go函数或方法。一个运行的程序由一个或更多个goroutine组成。它与线程、协程、进程等不同。简单的说就是golang自己实现了协程并叫做goruntine。
线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
进程是分配资源的基本单位,也是我们说的隔离。线程作为独立运行和独立调度的基本单位。
关系
一个进程可以有多个线程。一个线程有多个 Goroutine/协程
threading 线程
goruntine
golang 自己实现的协程和叫 goruntine,又和其它语言的协程不一样。
参考链接
Last updated
Was this helpful?