在Go语言中goroutine是一个协程,但是跟Python里面的协程有很大的不同:

  1. 在任何函数前只需要加上go关键字就可以定义为协程;
  2. 不需要在定义时区分是否是异步函数  VS  async def;
  3. 调度器在适合的点自动进行切换  VS python 手动切换;
  4. 使用 go run -race 来检测数据访问的冲突;
  5. 非抢占式;

 

goroutine可能的切换点:

  1. I/O (输入/输出), Select
  2. Channel
  3. 等待锁
  4. 函数调用
  5. runtime.Gosched()

 

相关文章:

  • 2021-05-26
  • 2021-10-09
  • 2022-02-23
  • 2021-07-13
  • 2021-08-23
  • 2021-12-13
  • 2022-02-03
  • 2021-08-15
猜你喜欢
  • 2021-12-12
  • 2022-12-23
  • 2021-07-11
  • 2021-05-28
  • 2021-11-27
  • 2022-12-23
相关资源
相似解决方案