首先我们需要理解进程和线程的关系

当运行一个应用程序的时候,操作系统会为这个应用程序启动一个进程,该个进程包含了应用程序在运行中所用需要用到和维护的各种资源的容器

  • 每个进程至少包含一个线程
  • 每个进程的初始线程被称为主线程
  • 执行线程的空间是应用程序本身的空间
  • 主线程终止,应用程序也将终止
goroutine
goroutine
goroutinegoroutinegoroutinegoroutine
goroutinegoroutine

我们来尝试执行一段代码

结果

goroutine
goroutine
goroutinegoroutinegoroutinegoroutine

继续查看代码

3 1 2

并发与并行

简而言之

  • 并行

不用的程序在不同的物理处理器上执行,关键的在于同时做很多事情

  • 并发
go
go

即可

以上,会触发2两调度处理器,并发运行,但实际上这种并发也其实就是 go 通过单个物理机器创建多个线程实现的伪并行

IOgoroutine
IOgoroutinegoroutine
IO
goroutineIOgoroutine
IO

网络IO,将从逻辑处理器上分离,且将其放入到网络轮询器的运行中,当检测到改资源IO操作就绪,将取出并分配到逻辑处理器上重新运行

调度器配置

Goruntimedebug