同步對(duì)象將系統(tǒng)API封裝在類里,避免全局變量以及同步的自發(fā)調(diào)用。
第九章 線程處理面向?qū)ο蠹軜?gòu)
多線程處理應(yīng)當(dāng)服從該架構(gòu),架構(gòu)不應(yīng)受多線程處理的驅(qū)動(dòng)。有一些天生就適合于多線程處理的常見(jiàn)架構(gòu)。下面是其中的三種架構(gòu):
1、客戶機(jī)/服務(wù)器
2、事件驅(qū)動(dòng)編程(GUI)
3、黑板(blackboard)
同步對(duì)象訪問(wèn)以及保護(hù)對(duì)象臨界區(qū)的責(zé)任應(yīng)當(dāng)從對(duì)象的用戶身上轉(zhuǎn)移倒對(duì)象的提供者身上。
在PRAM模型中操作的算法一般可分為4類并發(fā)訪問(wèn):
1、EREW 排他性讀和排他性寫(xiě)
2、CREW 并發(fā)讀和排他性寫(xiě)
3、ERCW 排他性讀和并發(fā)寫(xiě)
4、CRCW 并發(fā)讀和并發(fā)寫(xiě)
增量多線程處理,步驟:
1、構(gòu)建同步、任務(wù)、線程類(互斥量、管道、隊(duì)列、事件等)
2、結(jié)合同步類和宿主類
3、選擇PRAM策略
4、使用成員函數(shù)強(qiáng)制實(shí)施策略
5、選定適宜的架構(gòu),構(gòu)建類庫(kù)、容器類和域類