Go 并发编程

发布时间:2023-12-27 08:00

总述

Go依靠独特的轻量级的协程 轻松创建上百万个任务不会导致系统的资源衰竭 (相比起来进程和线程最多也不会超过1w个)

接下来主要从这几个方面展开:

  • 什么是并发编程
  • Go如何实现并发
  • 并发的原理
  • 协程之间通信依靠的chanel
  • 同步异步
  • 数据安全

并发

看起来同时

并行

真正同时

注意:

  • 并行一定是多核的
  • 并行看上去很牛逼 但是因为其任务之间的通信成本很高 导致其效果不一定好

进程(process)

每一个独立进行的程序就是进程,是程序中的一次动态执行过程,可与理解为正在执行的程序,是系统资源调度和分配的基本单位,拥有独立的内存单元,需要经历从代码加载,执行,到最后执行完毕。多进程的系统可以同时运行多个程序,因为CPU有自己的分时机制,所以每个程序都可以获取到自己的时间片,但是进程之间的信息交互比较麻烦,另外进程的创建,撤销,切换的开销大。

线程(thread)

线程是一个基本的CPU单元,是CPU调度和分配的最小单位。同一个进程下的线程可以共享系统资源,线程之间的切换代价小于进程之间的切换

协程(goroutine)

是一种用户态的轻量级线程,协程的调度完全通过用户来控制,协程和子函数很类似,一个入口 一次返回 一旦退出 就是完成。


Goroutine

未完待续

\0\0\0\0

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号