您的位置:首页 > 其它

Scala高阶函数、闭包、​柯里化

2017-12-08 00:00 225 查看
一、高阶函数
二、闭包
三、柯里化
四、Actor

一、高阶函数
scala的高阶函数:



二、闭包
scala 的闭包:函数里面引用外面类成员变量叫作闭包.例:


三、柯里化


四、Actorscala的多线程Actor是异步通信的,没有java死锁情况.最近java提供的NIO(new IO),框架是Netty;scala的多线程Actor框架是akka。scala的多线程是用它来实现的。
scala的actor简单使用:



用scala最多的情况就是用在 spark上,在编写spark 算子用的比较多,实际只用到scala基本语法 ;集合操作用的是 spark自己的算子
actor的future应用:



actor互通信:



scala的发送用!,!! 是发送等待回复 future,!?是同步等待回复
Actor可以返回消息给发送方。Receive会把sender字段设为当前消息的发送方。,使用react的actor可以共享线程,也就是线程池
Actor的消息队列会串行化消息。Actor运行在单个线程中,它会先接受一条消息,然后接收下一条。不用在Actor代码中担心争用状况。
Actor的act方法在start方法被调用时开始执行。如果act方法返回或是由于异常被终止或是actor调用exit方法,都会导致actor终止执行。
如果在receive方法被调用时并没有消息,该调用会阻塞,直到有消息到达。如果发来的消息无法匹配,同样会阻塞,等待下一个消息。

更多关于hadoop,spark和机器学习文章请关注本文公众号:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: