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