码迷,mamicode.com
首页 > 其他好文 > 详细

关于go中并行的初步理解

时间:2018-10-17 12:16:47      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:地址   devices   线程   device   系统   多个   body   空间   上下   

一些概念的介绍:

概念 描述
进程

在内存中的程序。有自己独立的独占的虚拟 CPU 、虚拟的 Memory、虚拟的 IO devices。

(1) 每一进程占用独立的地址空间。 此处的地址空间包括代码、数据及其他资源。
(2) 进程间的通信开销较大且受到许多限制。 对象(或函数)接口、通信协议
(3) 进程间的切换开销也较大。 又称Context Switch。上下文包括代码、数据、堆栈、处理器状态、资源。

线程

轻量级进程。在现代操作系统中,是进程中程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。

(1) 多个线程共享进程的地址空间(代码、数据、其他资源等)。
线程也需要自己的资源,如程序计数器、寄存器组、调用栈等。

(2) 线程间的通信开销较少且比较简单。
因为共享而减少了需要通信的内容。
但也因为充分共享而无法对共享资源进行保护。

(3) 线程间的切换开销也较小。
只需保存每一线程的程序计数器、寄存器组、堆栈等空间。
不必切换或复制整个地址空间,从而成本大为降低(约1/10)

协程 轻量级线程。 是可以并发执行的函数,由编译或用户指定位置将控制权交给协程调度程序执行的方式。它是非抢占式的,可以避免反复系统调用,还有进程切换造成的开销,给你上几千个逻辑流,也称用户级别线程。
逻辑处理器 每个逻辑处理器都会绑定一个线程,并负责goroutine的执行
 并发  并发是以时间段为维度,即在单位时间内,同时完成多件事。
 并行  并行是以时间点为维度,即在某个时间点,同时完成多件事。
   
   
   
   
   

关于go中并行的初步理解

标签:地址   devices   线程   device   系统   多个   body   空间   上下   

原文地址:https://www.cnblogs.com/zheng123/p/9803014.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!