我正在开始我最后一年的项目。我将从java和scala的角度来研究并发性方法。从java并发模块出来后,我可以看到人们为什么说共享状态线程方法很难推理。由于Java线程运行的非确定性方式,您有担心的关键部分,运行竞争条件和死锁等风险。在1.5的情况下,这个推理得到了一些清晰的解释,但仍然非常清晰。来自并发观点的Java v Scala
在初看来,斯卡拉似乎通过演员类去除了这种复杂的推理。这使得程序员能够从更连续的观点开发并发系统,并且更容易概念化。但是,对于这个积极的方面,我是否有说缺点?例如,假设我们想要在两种情况下对一个大列表进行排序 - 用java创建两个线程将列表分成两部分,担心关键部分,原子操作等并执行代码。有了scala,因为它是“无分享”,你实际上必须通过列表/ 2到两个演员来执行排序操作,对吧?
我想我的问题是,你为简单的推理付出的代价是不得不将收集传递给你的演员,在斯卡拉的性能开销?
我的想法做一些基准测试这种效果(选择排序,快速排序等),但因为一个是功能,一个是势在必行 - 我不会跟苹果从算法的观点比较苹果。
我真的很感激你们对上述任何观点,给我一些想法让我开始。 非常感谢。
平行集合,在2.9中添加,使用分而治之算法,如上所述。 – soc 2011-03-17 08:47:42