第66讲:Scala并发编程实战初体验及其在Spark源码中的应用解析

第66讲:Scala并发编程实战初体验及其在Spark源码中的应用解析笔记
程序宏大时java并发编程变得非常复杂,
java并发编程的理念是:基于共享数据和加锁的线程模型
--若干程序访问共享数据,用监视器监控共享数据的访问。
synchronized
线程是动态的概念
写程序时要考虑每一时刻
java多线程同时访问一个加锁数据时易发生死锁


scala的并发编程:actor
与java实现方式完全不同,
actor不共享数据依赖消息传递
A传给B消息,B不停看收件箱。
B看到邮件后处理。


android框架中也有基于消息机制的并发模型。
scala原生就有基于消息机制的并发模型。
akka是基于actor的消息机制,非常好用。
避免死锁和资源争论。


问题:actor和线程是一一对应的吗?

master和worker都是actor级别的,运行时master和worker都不断查看自己的邮箱。

实战案例:

object First_Actor extends Actor {

def act() {

for (i <- 1 to 10) {

println("Step : “ + i )

Thread.sleep(2000)

}

}

}

object Second_Actor extends Actor {

def act() {

for (i <- 1 to 10) {

println("Step Further : “ + i )

Thread.sleep(2000)

}

}

}

object Hello_Actor {
def main(args: Array[String]) {
First_Actor.start           /*注意这里是用.start而不是调用act方法*,下同/
Second_Actor.start
}
}

通过这个案例我们可以了解scala是如何使用actor实现并发编程的。

以上内容是从王家林老师DT大数据课程,

DT大数据微信公众账号:DT_Spark  

scala第66讲视频观看链接:

http://yun.baidu.com/s/1pJ5jzHx#path=%252F

我的百度网盘共享内容:http://pan.baidu.com/s/1qWK9CMo



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值