鍍金池/ 教程/ Linux/ 并發(fā)與并行
信號(hào)
創(chuàng)建目錄權(quán)限
示例程序
進(jìn)程的定義
Hello World進(jìn)程
創(chuàng)建進(jìn)程
進(jìn)程鎖
第四章 項(xiàng)目實(shí)例Run
Nohup命令
PID
前言
系統(tǒng)調(diào)用sendfile
進(jìn)程參數(shù)
參考書(shū)籍
后記
進(jìn)程狀態(tài)
本書(shū)概述
寫(xiě)時(shí)復(fù)制(Copy On Write)
Docker簡(jiǎn)介
第五章 注意事項(xiàng)
實(shí)現(xiàn)Run
孤兒進(jìn)程概念
共享內(nèi)存
衍生(Spawn)新進(jìn)程
PPID
第三章 進(jìn)程進(jìn)階
退出碼
簡(jiǎn)介
進(jìn)程文件
Thanks for reading!
項(xiàng)目學(xué)習(xí)
第一章 進(jìn)程基礎(chǔ)
僵尸進(jìn)程
系統(tǒng)調(diào)用
POSIX簡(jiǎn)介
執(zhí)行(Exec)外部程序
文件描述符
進(jìn)程名字
進(jìn)程輸入與輸出
Cgroups
進(jìn)程間通信
查看PID
死鎖概念
進(jìn)程越多越好?
Run項(xiàng)目架構(gòu)
  • 1.
復(fù)制(Fork)進(jìn)程
第二章 Go編程實(shí)例
活鎖概念
守護(hù)(Daemon)進(jìn)程
并發(fā)與并行
捕獲SIGKILL
Namespaces簡(jiǎn)介

并發(fā)與并行

并發(fā)與并行

并發(fā)(Concurrently)和并行(Parallel)是兩個(gè)不同的概念。借用Go創(chuàng)始人Rob Pike的說(shuō)法,并發(fā)不是并行,并發(fā)更好。并發(fā)是一共要處理(deal with)很多事情,并行是一次可以做(do)多少事情。

舉個(gè)簡(jiǎn)單的例子,華羅庚泡茶,必須有燒水、洗杯子、拿茶葉等步驟?,F(xiàn)在我們想盡快做完這件事,也就是“一共要處理很多事情”,有很多方法可以實(shí)現(xiàn)并發(fā),例如請(qǐng)多個(gè)人同時(shí)做,這就是并行。并行是實(shí)現(xiàn)并發(fā)的一種方式,但不是唯一的方式。我們一個(gè)人也可以實(shí)現(xiàn)并發(fā),例如先燒水、然后不用等水燒開(kāi)就去洗杯子,所以通過(guò)調(diào)整程序運(yùn)行方式也可以實(shí)現(xiàn)并發(fā)。

大神講解

如果還不理解,建議看Rob Pike題為Concurrency is not Parallelism的演講PPT演講視頻。

我把演講的PPT截圖貼出來(lái)方便大家理解。

http://wiki.jikexueyuan.com/project/linux-process/images/concurrent1.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent2.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent3.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent4.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent5.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent6.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent7.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent8.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent9.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent10.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent11.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent12.png" alt="" /> http://wiki.jikexueyuan.com/project/linux-process/images/concurrent13.png" alt="" />

總結(jié)

總結(jié)一下,并行是實(shí)現(xiàn)并發(fā)的一種方式,在多核CPU的時(shí)代,并行是我們?cè)O(shè)計(jì)高效程序所要考慮的,那么進(jìn)程是不是越多越好呢?