熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

.NET 4特性聚焦:並行編程

2013-11-13 10:56:59  來源: .NET編程 

  用語言運行時(Common Language RuntimeCLR)以鎖線程和線程池的形式為並行編程提供基本的支持不過隨著多核CPU重要性的逐步增加大家又重燃構建高級並行編程函數庫的熱情

  很多人現在都投身於函數式編程的世界由於它們具有不可變的對象以及與生俱來的線程安全屬性基於F#語言的Haskell和OCaml可以歸入此類其他例如Erlang這樣倍受大家偏愛的語言是基於消息傳遞和輕量級進程的除了支持F#外微軟也嘗試了幾種不同的方式以需求並行編程的准確提煉

  最先公布的產品是並行LINQ(Parallel LINQ)也即所謂的PLINQ類似對SQL的處理一樣並行的版本通過語言本身來處理而無需開發人員的努力通過把AsParallel附加到查詢上就能正常工作了不過正如SQL一樣在這裡通常還是需要設定很多額外的選項

  下一個出現的是結構化並行性語法(Structured Parallelism)這種技術會讓人想起OpenMP不過它不像OpenMP那樣使用編譯器指令標記微軟的解決方案是基於匿名委托最直觀的反應就是代碼只需作細微的修改for語句內的代碼塊可以作為參數傳遞到ParallelFor函數中

  如果代碼無法輕易地表示為查詢或迭代循環則可以選擇任務並行庫(Task Parallel Library)乍看之下它似乎是另外一種線程池但它卻支持任務之間的父子關系

  為了對應用程序進行更好地控制微軟提供了協調一致的數據結構(Coordination Data Structures)它們為未來提供了線程安全的集合以及改良過的同步對象


From:http://tw.wingwit.com/Article/program/net/201311/14839.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.