这是我参与「第五届青训营 」伴学笔记创作活动的第1天
进程是操作系统进行资源分配的基本单位。 线程是调度执行的基本单位。 线程:是成程序中的一条执行路径(有主线程)
个人理解:并发中空间中一个用户空间调用一个内核空间,线程从用户态到内核态的切换会比较消耗系统资源,毕竟是不同内核线程调度切换,而GO中的多个协程则可以通过协程调度器调用相应的内核线程采用GPM调度策略,这样就解决了CPU高调度资源消耗的难题,因为在一个内核线程中调度切换,比线程来说更具优势。
关于GPM调度策略可以简单理解为两个字:“偷”和“离” 当用户空间的那片区域没有足够的协程来执行可以从别的地方“偷来”协程然交给内核线程来执行。 当有多个协程正在准备执行,第一个正在执行的协程阻塞了,这时候就让它占据那个内核线程等到它执行完成,其他协程则重新寻找一个新的内核线程开始执行。
以上是我对线程进程以及协程的一点浅薄理解,才疏学浅,如有错误之处请见谅。