关于go中并行的初步理解
Posted zheng123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于go中并行的初步理解相关的知识,希望对你有一定的参考价值。
一些概念的介绍:
概念 | 描述 |
进程 |
在内存中的程序。有自己独立的独占的虚拟 CPU 、虚拟的 Memory、虚拟的 IO devices。 (1) 每一进程占用独立的地址空间。 此处的地址空间包括代码、数据及其他资源。 |
线程 |
轻量级进程。在现代操作系统中,是进程中程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。 (1) 多个线程共享进程的地址空间(代码、数据、其他资源等)。 (2) 线程间的通信开销较少且比较简单。 (3) 线程间的切换开销也较小。 |
协程 | 轻量级线程。 是可以并发执行的函数,由编译或用户指定位置将控制权交给协程调度程序执行的方式。它是非抢占式的,可以避免反复系统调用,还有进程切换造成的开销,给你上几千个逻辑流,也称用户级别线程。 |
逻辑处理器 | 每个逻辑处理器都会绑定一个线程,并负责goroutine的执行 |
并发 | 并发是以时间段为维度,即在单位时间内,同时完成多件事。 |
并行 | 并行是以时间点为维度,即在某个时间点,同时完成多件事。 |
以上是关于关于go中并行的初步理解的主要内容,如果未能解决你的问题,请参考以下文章