企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## Go 对并发的支持 Go 编程语言原生支持并发。Go 使用(Goroutine) 和信道(Channel)来处理并发; Go语言的并发模型是CSP(Communicating Sequential Processes),提倡通过通信共享内存而不是通过共享内存而实现通信 ### 进程vs线程vs协程 * 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位; * 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位;线程依附于进程,与其他线程共享进程的资源,仅有自己的(程序计数器,一组寄存器的值,和栈),线程切换代价小(但是线程之间的切换可能会设计用户态和内核态的切换),由于共享进程资源,所以线程之间通信比较方便 * 协程是一种用户态的轻量级线程,独立的栈空间,共享堆空间,协程的调度完全由用户控制,协程切换只需要保存和恢复任务的上下文,没有内核的开销 ### 并发和并行 * 多线程程序在一个核的cpu上运行,就是并发; * 多线程程序在多个核的cpu上运行,就是并行;