### 并發與并行
并發(Concurrently)和并行(Parallel)是兩個不同的概念。借用Go創始人Rob Pike的說法,并發不是并行,并發更好。并發是一共要處理(deal with)很多事情,并行是一次可以做(do)多少事情。
舉個簡單的例子,華羅庚泡茶,必須有燒水、洗杯子、拿茶葉等步驟。現在我們想盡快做完這件事,也就是“一共要處理很多事情”,有很多方法可以實現并發,例如請多個人同時做,這就是并行。并行是實現并發的一種方式,但不是唯一的方式。我們一個人也可以實現并發,例如先燒水、然后不用等水燒開就去洗杯子,所以通過調整程序運行方式也可以實現并發。
### 大神講解
如果還不理解,建議看Rob Pike題為Concurrency is not Parallelism的[演講PPT](http://concur.rspace.googlecode.com/hg/talk/concur.html)和[演講視頻](http://blog.golang.org/concurrency-is-not-parallelism)。
我把演講的PPT截圖貼出來方便大家理解。













### 總結
總結一下,并行是實現并發的一種方式,在多核CPU的時代,并行是我們設計高效程序所要考慮的,那么進程是不是越多越好呢?
- 前言
- 致謝
- 概述
- 使用代碼
- 使用Docker
- 進程基礎
- 進程是什么
- Hello World
- PID
- PPID
- 使用PID
- 進程名字
- 進程參數
- 輸入與輸出
- 并發與并行
- 進程越多越好
- 進程狀態
- 退出碼
- 進程資源
- 死鎖
- 活鎖
- POSIX
- Nohup
- 運行進程
- Go編程實例
- 衍生新進程
- 執行外部程序
- 復制進程
- 進程進階
- 文件鎖
- 孤兒進程
- 僵尸進程
- 守護進程
- 進程間通信
- 信號
- Linux系統調用
- 文件描述符
- Epoll
- 共享內存
- Copy On Write
- Cgroups
- Namespaces
- 項目實例Run
- 項目架構
- 代碼實現
- 注意事項
- 創建目錄權限
- 捕獲SIGKILL
- Sendfile系統調用
- 后記
- 參考書籍
- 項目學習
- 再次感謝