本文轉載
編程多年,大多時間都在按教材的思路來寫軟件,隨着開發經驗的積累,做品從應用路線昇華爲創做路線.本人所在的行業是通信行業,工做內容是爲行業內專業人士寫應用工具.總結在這行業所寫的做品,軟件的質量也在慢慢提升.
因爲應用目的,軟件難度愈來愈高,體現處理的數據愈來愈多,對數據進行率選並求出最終數據所耗的時間也愈來愈大.開始在軟件使用線程,是在一次無心的嘗試下發現,現說出來,和你們一塊兒分享.
引用.net幫助文檔中的一段話"操做系統使用進程將它們正在執行的不一樣應用程序分開。線程是操做系統分配處理器時間的基本單元,而且該進程中能夠有多個線程同時執行代碼。每一個線程都維護異常處理程序、調度優先級和一組系統用於在調度該線程前保存線程上下文的結構。線程上下文包括爲使線程在線程的宿主進程地址空間中無縫地繼續執行所需的全部信息,包括線程的 CPU 寄存器組和堆棧。"能夠看到線程和進程的關係.
直接的體會是在處理宏量數據運算事,假定算法代碼都同樣,使用線程和不使用線程在執行過程所耗的時間有明顯差異,好比說,不使用線程,我運算程序到出最終結果要半個小時的話,多加幾行語句,將這個計算代碼段用線程來執行,結果會讓你驚訝的發現,原來需半個小時的程序會在不到1分種的時間執行完成.
緣由是什麼呢?由於操做系統會將你的軟件在運行狀態下變成一個進程,在進程中,不作線程設置的話,會佔用全部CPU的運算資源處理你的代碼段,直到運算完.不少資源和時間都花在等待上,不做宏量數據的狀況,你是很難發現這個區別.
有過這些經歷後,在處理宏數據的過程當中,包括打開一些文本文件獲取數據,或多個二進制文件數據流處理,求出目標結果的相似軟件開發時,本人已作到潛意識中選用線程來封裝這些代碼段.目的就是爲了提升執行效率.
寫出這些心得原和那些在非軟件公司裏面幹着數據處理軟件的同類人分享,但願能一塊兒完成高強度的開發要求.