1.3.4 設計並發友好的應用程式

來源:互聯網
上載者:User

標籤:使用   問題   代碼   工作   應用   設計   

1.3.4 設計並發友好的應用程式

 

使用傳統的命令風格編寫多線程應用程式時,我們要面對兩個問題:

■很難讓現有的順序代碼變成並行的代碼,因為要顯式使用線程,必須修改大部分的基本代碼。

■使用共用狀態和鎖定是困難的。必須仔細考慮如何使用鎖來避免競爭條件和死結,留下足夠的空間並存執行。

函數式編程給了我們答案:

■使用聲明編式程風格時,可以在現有的代碼中引入並行。替換很少幾個基元,就能把命令與並行方式執行的命令組合起來。

■由於具有不可變性,不可能引入競爭條件,可以編寫無需鎖定的代碼;只要看到哪部分程式是獨立的,就可以立刻把它修改成並行啟動並執行任務。

這兩個方面能夠影響我們如何設計應用程式,以及更易於編寫並行啟動並執行代碼,充分利用多核的機器。但是,寫不可變代碼,並不開然獲得並化行,還有棘手的工作要做,只是函數式編程能夠將花在並行化上的額外努力降至最低。

還沒有完,當開始用函數方式進行思考,還會發現在設計中有其他改變……

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.