Microsoft 是否有可能使 F# 程序在 VM 执行时或更可能在编译时检测到程序是使用函数式语言构建的并自动更好地并行化它?
现在我相信没有这样的努力来尝试和自动执行作为单线程程序构建的程序作为多线程程序。
也就是说,开发人员将编写一个单线程程序。编译器会生成一个编译后的程序,该程序是多线程的,在需要时带有互斥体和同步。
这些优化在任务管理器的进程线程计数中是否可见,或者是否会低于该级别?
我认为这在不久的将来不太可能发生。如果确实发生,我认为更有可能发生在 IL 级别(程序集重写)而不是语言级别(例如 F#/编译器特有的东西)。这是一个有趣的问题,我希望一些聪明的人已经在关注这个问题,并将继续关注这个问题一段时间,但在短期内,我认为重点将放在让人类更容易地指导这个问题上。程序的线程化/并行化,而不是像魔术一样让这一切发生。
(语言特征如F# 异步工作流程 http://blogs.msdn.com/dsyme/archive/2007/10/11/introducing-f-asynchronous-workflows.aspx,以及像这样的图书馆任务并行库及其他 http://blogs.msdn.com/pfxteam/default.aspx,是近期进展的好例子;它们可以为您完成大部分繁重的工作,特别是当您的程序更具声明性而不是命令性时,但它们仍然需要程序员选择加入,对正确性/意义进行分析,并且可能对代码结构进行轻微的更改使一切顺利。)
无论如何,这都是猜测;谁能预测未来会发生什么?我期待着找到答案(并希望能够实现其中一些)。 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)