我很高兴能够使用内置并行/并发的语言,例如stackless python和erlang,并且坚信我们都必须进入方向太长 - 或者想要,因为它将是获得可扩展性和性能的好/简单方法。
但是,我习惯于以线性/串行/ OOP /功能方式思考解决方案,我正在努力以一种值得使用并发的方式来解决我的任何域问题。我怀疑我只需要忘记了很多,但我想我会问以下问题:
他们愿意分享任何经验吗?
答案 0 :(得分:4)
过去当台式机具有单个CPU时,并行化仅适用于“特殊”并行硬件。但是现在桌面通常有2到8个内核,所以现在并行硬件是标准配置。这是一个很大的区别,因此它不仅仅是关于建议并行性的问题,而且还关注如何将并行性应用于更广泛的问题。
为了利用并行性,您通常需要以某种方式重塑您的问题。 Parallelism以多种方式改变了游乐场:
答案 1 :(得分:2)
在我们拥有操作系统之前,建立应用程序的人会坐下来讨论以下内容:
操作系统来自“开发者库”的集合。
操作系统的优点在于您的UNWRITTEN软件具有某些特性,它可以:
一旦你转移到操作系统 - 你就不会回到原状......
Erlang / OTP(即非Erlang)是一个应用程序系统 - 它在两台或多台计算机上运行。
应用系统的优点在于您的UNWRITTEN软件具有某些特性,它可以:
猜猜一下,一旦你转移到应用系统 - 你也不会回去......
您不必使用Erlang / OTP,Google在其应用引擎中拥有良好的应用系统,因此不要对语言语法感到困惑。
基于Erlang / OTP堆栈而不是Google App Engine可能有很好的商业理由 - 贵公司的商业开发人员会为您打电话。
答案 2 :(得分:1)
未来的问题将几乎保持不变,但实现的底层硬件正在发生变化。要使用它,对象(组件,进程,服务,以及如何调用它)之间的计算方式将发生变化。消息将异步发送,无需等待直接响应。相反,在完成一项工作后,该过程将使用答案回复发件人。这就像人们一起工作。
我目前正在设计一种基于Erlang / OTP的轻量级事件驱动架构。它被称为Tideland EAS。我在这里描述了这些想法和原则:http://code.google.com/p/tideland-eas/wiki/IdeasAndPrinciples。它没有准备好,但也许你会理解我的意思。
MUE
答案 3 :(得分:0)
Erlang让你想到并行的问题。你不会忘记它一秒钟。过了一会儿你适应了。不是一个大问题。除了解决方案在每个小角落变得平行。您必须调整所有其他语言。要并发。这感觉并不自然。然后你最终讨厌你的解决方案。不好玩。
Erlang的最大优势是它没有全球垃圾收集。它永远不会休息。当你每秒有10000次页面浏览时,这很重要。