Lambda表达式的Java教程如下:
本节讨论Project中包含的特性,该项目旨在通过在Java语言中添加闭包和相关特性来支持多核环境中的编程。
我的问题是,根据多核系统和并发/并行编程,Lambda表达式有哪些具体优势?
发布于 2013-06-07 10:24:14
要实现并行性非常简单,例如,如果您有一个集合,并且实现了一个lambda,那么:
collection.map { // my lambda }然后集合本身就可以并行化该操作,而不必自己执行线程处理等操作。并行性在集合map()实现中处理。
在一个纯功能(即没有副作用)系统中,您可以对每个lambda这样做。对于非纯功能环境,您必须选择适用于此的lambda (因为您的lambda可能不能安全地并行操作)。例如,在Scala中,为了实现上面的内容,您必须显式地接受集合上的并行视图。
发布于 2013-06-07 17:01:02
一些参考材料:
发布于 2016-05-10 04:21:05
对于Java 8、lambda函数和开发人员的意图,我想问一问:什么是新的,为什么它比传统的接口/方法函数方法更好?为什么它比(假设) forEach(IApply)更好:
IApply是接口
public interface IApply {
void exec(KEY key, VALUE value);
}它是如何阻碍并行性的?至少可以在静态类中重用、继承(扩展) IApply的实现。
最后一个参数很重要,因为我看到了几十个初级类错误的例子,这些例子忽略了lambda代码访问外层类的这个错误,这可能是类在明确引用后留在内存中的一个原因已经为null。
从这个角度来看,引用类的静态成员是非常重要的(类似于C#“委托”的情况),而且从一方面来说,lambda是超级封装,来自另一个不能重用的,同时违反了OOD文化的基本原则:免费访问主成员。从编程文化的角度看--倒转到上个世纪70年代.
函数式编程?-I看到了,但是为什么要混合是Java的OOP现象。OOD有一个很棒的模式,叫做数据-行为解耦,它优雅地提供了同样的可能性?这个论点--就像在Java脚本...nu中一样,真的!因此,给出在Java中嵌入Java脚本和用Java脚本编写系统块的工具。所以我仍然没有看到真正的好处,因为在广告浪潮中。
https://stackoverflow.com/questions/16981796
复制相似问题