繁体   English   中英

F#支持多核

[英]F# support for Multiple Cores

我是F#的新手,但在Classic VB,C#和LINQ方面有几年的经验

我喜欢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#在并发编程方面有一些很好的语法。

我想你会喜欢看Luke的PDC视频:

http://blogs.msdn.com/b/lukeh/archive/2010/02/01/f-for-parallel-and-asynchronous-programming-pdc-2009.aspx

它讨论了为什么并行/并发编程很难,以及F#的哪些特性使其更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM