2020-05-10

Golang chan 避免死锁

Views: 10642 | Add Comments

Golang 的管道(chan)无论是否有缓冲, 生产者和消费者不可能做到速度完全匹配, 一旦管道满了, 就相当于生产者直接调用消费者. 如果生产者和消费者使用同一个锁, 就是死锁了.

所以, 一个重要的原则就是, 在写管道之前, 把所有可能的锁 unlock 掉.

Related posts:

  1. 数据库内核的并发控制
  2. 异步编程语言的常见坑
  3. C++ Latch 实现
  4. CVPixelBufferRef 与 CVOpenGLTextureRef: 图像处理中内存与显存的交互
  5. 集成于 iphp 框架的 PHP 并发模型和工具
Posted by ideawu at 2020-05-10 22:28:28

Leave a Comment