1. 并發(fā)/并行
并發(fā):是指同一個(gè)時(shí)間段內(nèi)多個(gè)任務(wù)同時(shí)都在執(zhí)行票腰,并且都沒有執(zhí)行結(jié)束。
并行:是指在單位時(shí)間內(nèi)多個(gè)任務(wù)同時(shí)在執(zhí)行女气⌒游浚“對比串行”。
說明:并發(fā)任務(wù)強(qiáng)調(diào)在一個(gè)時(shí)間段內(nèi)同時(shí)執(zhí)行,而一個(gè)時(shí)間段由多個(gè)時(shí)間單位累積而成缘滥,所以并發(fā)的多個(gè)任務(wù)在單位時(shí)間內(nèi)不一定同時(shí)執(zhí)行轰胁。
????在多線程編程實(shí)踐中,線程的個(gè)數(shù)往往多于CPU的個(gè)數(shù)朝扼,所以一般稱多線程并發(fā)編程而不是多線程并行編程赃阀。
2. 同步/異步
????????強(qiáng)調(diào)的是消息通信機(jī)制 (synchronous communication/ asynchronous communication)。所謂同步擎颖,就是在發(fā)出一個(gè)"調(diào)用"時(shí)榛斯,在沒有得到結(jié)果之前,該“調(diào)用”就不返回搂捧。但是一旦調(diào)用返回驮俗,就得到返回值了。換句話說允跑,就是由“調(diào)用者”主動等待這個(gè)“調(diào)用”的結(jié)果王凑。而異步則是相反,"調(diào)用"在發(fā)出之后吮蛹,這個(gè)調(diào)用就直接返回了,所以沒有返回結(jié)果拌屏。換句話說潮针,當(dāng)一個(gè)異步過程調(diào)用發(fā)出后,調(diào)用者不會立刻得到結(jié)果倚喂。而是在"調(diào)用"發(fā)出后每篷,"被調(diào)用者"通過狀態(tài)、通知來通知調(diào)用者端圈,或通過回調(diào)函數(shù)處理這個(gè)調(diào)用
3. 阻塞/非阻塞
????????強(qiáng)調(diào)的是程序在等待調(diào)用結(jié)果(消息焦读,返回值)時(shí)的狀態(tài).??阻塞調(diào)用是指調(diào)用結(jié)果返回之前,當(dāng)前線程會被掛起舱权。調(diào)用線程只有在得到結(jié)果之后才會返回矗晃。非阻塞調(diào)用指在不能立刻得到結(jié)果之前,該調(diào)用不會阻塞當(dāng)前線程宴倍。?對于同步調(diào)用來說张症,很多時(shí)候當(dāng)前線程還是激活的狀態(tài),只是從邏輯上當(dāng)前函數(shù)沒有返回而已鸵贬,即同步等待時(shí)什么都不干俗他,白白占用著資源