MIT 6.824分布式系统——RPC和多线程

MIT 6.824分布式系统——RPC和多线程

3月 8, 2022 阅读 1637 字数 254 评论 0 喜欢 0

为什么使用多线程

  • I/O并发
  • 并行
  • 方便(便于写定时任务)

编写线程的挑战

  • 处理共享数据
  • 死锁
  • 线程协作
    • channel:从一个线程向另一个线程发送数据
    • sync.cond():不确定是否有线程在等你的时候,每隔一段时间对线程发出一个ticket唤醒信号
    • sync.WaitGroup:启动已知数量的goroutines,然后使它们等待直到调用WaitGroup的Done()结束

      每执行一次done.Done(),WaitGroup的计数器会减一。
      问:如果goroutine非正常死亡,导致WaitGroup无法归零怎么办?答:

发表评论

您的电子邮箱地址不会被公开。