GO_Student

55 阅读1分钟

1.GO多并发编程

1.1协程

image.png

  • 协程:用户态,轻量级线程,栈KB级别
  • 线程:内核态,线程跑多个协程,栈MB级别

快速打印Hello goroutine:0~hello goroutine:4

image.png Go语言开启协程是在要调用的函数的时候在前面加上go,就为创建了一个go语言的协程

运行结果: image.png

1.2协程的通信

image.png 提倡通过通信共享内存而不是通过共享内存而实现通信

  • 左图:通过通信来共享内存的示意图,Gorountine是一个程序并发的执行体,通道将执行体作连接,遵循先入先出,保证收发数据的顺序。
  • 右图:通过共享内存实现通信的示意图