我是F#的新手,但在Classic VB,C#和LINQ
方面有几年的经验我喜欢F#并了解它默认会支持多个核心。 在服务器上使用可用的多核(4/5/6)是非常有利的。
F#如何做到这一点?
我也明白LINQ提供并行处理 - 它的工作方式与F#相同吗?
为什么C#没有完整的并行核心处理?
谢谢
答案 0 :(得分:4)
F#中没有神奇的支持来自动并行化您的代码。只是F#的各种功能使编写并行代码比使用更强制或OO语言更容易。
也就是说,请查看Async模块,了解如何在F#中轻松编写并行代码。
答案 1 :(得分:2)
我知道F#有async
你可以这样使用:
getIds()
|> List.map (
fun id -> async {
do! somethingAsync1 id
do! somethingAsync2 id
}
)
|> Async.Parallel
|> Async.RunSynchronously
这并不是说你不能在C#中做一些工作。当然,F#在并发编程方面有一些很好的语法。
答案 2 :(得分:2)
我想你会喜欢看Luke的PDC视频:
它讨论了为什么并行/并发编程很难,以及F#的哪些特性使其更容易。