我是新來的F#,但有幾年的經典VB,C#和LINQ爲多核
的經驗,我喜歡F#和理解,將默認爲多核心支持F#的支持。 要在服務器上使用可用的多核(4/5/6) - 非常有優勢。
F#如何做到這一點?
我也明白,LINQ提供了並行處理 - 它的工作方式與F#一樣嗎? 爲什麼C#沒有完整的並行核心處理?
謝謝
我是新來的F#,但有幾年的經典VB,C#和LINQ爲多核
的經驗,我喜歡F#和理解,將默認爲多核心支持F#的支持。 要在服務器上使用可用的多核(4/5/6) - 非常有優勢。
F#如何做到這一點?
我也明白,LINQ提供了並行處理 - 它的工作方式與F#一樣嗎? 爲什麼C#沒有完整的並行核心處理?
謝謝
在F#中沒有魔法支持來自動平行您的代碼。只是F#的各種功能使編寫並行代碼比使用更緊迫的OO語言更容易。
這就是說,看一下Async模塊,瞭解如何在F#中輕鬆編寫並行代碼的示例。
我知道F#有async
您可以使用這樣的:
getIds()
|> List.map (
fun id -> async {
do! somethingAsync1 id
do! somethingAsync2 id
}
)
|> Async.Parallel
|> Async.RunSynchronously
這並不是說你不能有一些工作做在C#。當然F#在併發編程方面有一些很好的語法。
因此,F#爲並行處理器編程提供了簡單的語法 - 是嗎? – swapneel 2010-08-20 15:12:11
更多的是,如果你編寫代碼的功能風格;事實上,所有數據都是不可變的,這使得編寫並行代碼的許多問題都消失了。 – Massif 2010-08-20 15:19:19