我這裡可以大概給你介紹一下
但對於每一種編程模型要看具體的示例是什麼
而且我不可能給你羅列所有的代碼
請諒解
其實我們編程只要盡量站到比較高的層次
很多道理其實你會發現你已經懂了
就多線程來說
我們開始設想只有兩個線程(>
時是不是算數學歸納法?)那麼如果兩個獨立的線程會發生什麼呢?
當一個線程進入moniter(也就是說站用一個object)
另一個線程只有等待或返回
而我們把返回就稱為一種模式
這種模式的英文是Balking
這兩個線程可以是有序的執行
而不是讓OS來調度
這時我們要用一個object來調度
這種模式稱為Scheduler
(這個詞及其含義其實OS中就有)
如果這兩個線程同時讀一個資源
我們可以讓他們執行
但如果同時寫的話
你閉著眼睛都會知道可能出現問題
這時我們就要用另一種模式(Read/Write Lock)
如果一個線程是為另一個線程服務的話
比如IE中負責數據傳輸的線程和界面顯示的線程
當一個圖片沒有傳完時
另一個線程就無法顯示
至少是部分沒有傳完
那麼這時我們要用一個模式稱為生產者和消費者
英文是Producer
Consumer
兩個線程的消亡也可以不是完全又OS來控制的
這時我們需要給出一個條件
使得每個線程在符合條件是才消亡
也就是有序的消亡
我們稱為Two
Phase Termination
那麼有這
個線程模型
基本上可以用到大多數編程任務中
我需要指出的三點是
從高層次上我們可以再驗證是否含蓋了所有的情況
其實模式不是完全固定的或者說象定律一樣
而模式可以為不同的情況進行適當 的調整和組合
目的是為了簡潔和高效
學習模式是為了具備更好的分析問題的能力
而似乎這些來自西方的技術
並且是目前的
我們有沒有呢?其實我個人有個大膽的推測
我認為我們祖先的《孫子兵法》就是很好設計模式
因為它符合設計模式需要的基本特征
就是在特定的條件下
用某種特定的方式合理且高效的解決問題
只不過一是用在軍事上
二是完備性方面我們還沒研究
但我認為我們至少沒有很好的擴展和進行類比式的應用
否則今天可能是我們中國人教外國人什麼是設計模式
類比的方法實際上是發明或發現的常用方法
不知能否讓你感覺到其實外國的技術並不是那麼的神秘
也許我們從自身的文化當中挖掘出的東西太少了
P
S
更深一步的研究你可以參考Doug Lea
<>
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27428.html