本章会聊:

  • Suitable Tasks for Threading
  • Models
  • Buffering Data Between Threads
  • Some Common Problems
  • Performance
  • Example: An ATM Server
  • Example: A Matrix Multiplication Program

适合多线程任务的特征

  • 任务有独立性
  • io密集型任务
  • cpu密集任务
  • 处理一部时间
  • 任务有多种优先级:比如说ui线程会比垃圾回收优先度高。

并发模型

  • boss/worker model:nginx那种
  • peer model:多个线程同时读取输入,自己锁住自己要的资源
  • pipe model