• 并发(concurrency)
    • 把任务在不同的时间点交给处理器进行同一个处理。在同一时间点,任务并不会同时运行。
    • 并发是指同时管理很多事情,这些事情可能只做了一半就被暂停去做别的事情了。
  • 并行(parallelism)
    • 把每一个任务分配给每一个处理器独立完成。在同一时间点,任务一定是同时运行。
    • 并行是让不同的代码片段同时在不同的物理处理器上执行。并行的关键是同时做很多事情,

在很多情况下,并发的效果比并行好,因为操作系统和硬件的总资源一般很少,但能支持系统同时做很多事情。这种“使用较少的资源做更多的事情”的哲学,也是指导 Go语言设计的哲学。

感谢