之前一直沒有搞懂這兩個的區(qū)別,現在的理解是:
進程:一個可執(zhí)行的程序
任務:一塊可執(zhí)行的代碼
線程:指的是一個獨立的代碼執(zhí)行路徑先馆,線程是代碼執(zhí)行路徑的最小分支
串行和并行:串行是一次只能執(zhí)行一個任務发框,并行是一次能執(zhí)行多個任務
并行是CPU的多核芯同時執(zhí)行多個任務 ?并發(fā)是單核CPU交替執(zhí)行兩個任務
///
2016 2 18 修改以上對同步異步的理解
同步異步關注的是消息通訊機制
所謂同步,就是在發(fā)出一個*調用*時煤墙,在沒有得到結果之前梅惯,該*調用*就不返回。但是一旦調用返回番捂,就得到返回值了个唧。注意這個返回是指CUP返回執(zhí)行的數據段部分,所以目前來看只是阻塞了CPU的數據段部分 并不耽誤CPU干別的 所以即使是同步也不見得是阻塞模式
換句話說设预,就是由*調用者*主動等待這個*調用*的結果徙歼。
而異步則是相反,*調用*在發(fā)出之后鳖枕,這個調用就直接返回了魄梯,所以沒有返回結果。換句話說宾符,當一個異步過程調用發(fā)出后酿秸,調用者不會立刻得到結果。而是在*調用*發(fā)出后魏烫,*被調用者*通過狀態(tài)辣苏、通知來通知調用者,或通過回調函數處理這個調用哄褒。
典型的異步編程模型比如Node.js
參考地址:
http://www.zhihu.com/question/19732473