scala并发的总结

来源:互联网 发布:手机淘宝怎么搜索星店 编辑:程序博客网 时间:2024/05/05 11:08
1、java的并发编程与scala的并发编程的特点。
     java的并发处理基本满足了这种相互独立且同时发生的此类程序的设计,但是随着程序越来越庞大时,java的并发处理会越来越复杂。java的并发理念是基于共享数据与加锁。若干条线程去访问(修改)这个共享数据。不同的线程去操作共享数据,在java中用每一个对象的监视器去控制多条线程对共享数据的访问。共享数据区域加锁(synchronized)。保证同一时间只能有一个线程来操作数据。以此来协调不同线程对数据的访问。
     程序在处理时需考虑多条线程对共享数据修改时加锁情况。不同线程在交互时会出现死锁。
     scala的并发编程actor ,它和java的处理机制是不同的。actor是不共享数据,依赖消息传递的并发编程模型。例如:actorA给actorB发送消息,B会有一个收件箱,B不断去循环自己的收件箱,看到A发送的消息B就会去解析该消息执行,在执行的过程中会修改自己的状态,然后把执行的结果返回给A。 基于scala的actor的并发编程框架:Akka
2、scala的并发编程actor的基本操作:继承Actor并复写其act方法。在对象中调用start启动。这种方式不关心消息队列
3、匿名actor的构建方式:引用 import scala.actors.Actor._ ,通过Actor伴生对象的actor方法直接创建和启动的。消息传递以!符号来传递。
4、原生线程:当它需要接受并处理消息的时候,会直接调用Actor伴生对象的self方法返回一个Actor实例对象,这样通过这个Actor实例对象的receive方法来接受并处理其他Actor发送给主线程的消息
5、react:可以使用react方法来替代receive方法进行消息的处理,使用react方法的好处是可以在一个线程中执行多个Actor的消息处理函数
以上内容是从王家林老师DT大数据课程第66-69讲的学习笔记。
DT大数据微信公众账号:DT_Spark  
王家林老师QQ:1740415547 
王家林老师微信号:18610086859
百度云盘地址:http://pan.baidu.com/s/1pJtEubL
优酷播放地址:http://v.youku.com/v_show/id_XMTI5MzUyMzkwOA==.html
51cto的播放地址:http://edu.51cto.com/lesson/id-69935.html

0 0
原创粉丝点击