1.Scala中Actor是什么

Scala的Actor类似于Java中的多线程编程。但是不同的是,Scala的Actor提供的模型与多线程有所不同。Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争用的情况,进而提升多线程编程的性能。此外,Scala Actor的这种模型还可以避免死锁等一系列传统多线程编程的问题。

2.Scala中Actor与java多线程的区别

在Java,我们都知道它的多线程实现需要对共享资源(变量、对象等)使用synchronized 关键字进行代码块同步、对象锁互斥等等。而且,常常一大块的try…catch语句块中加上wait方法、notify方法、notifyAll方法是让人很头疼的。原因就在于Java中多数使用的是可变状态的对象资源,对这些资源进行共享来实现多线程编程的话,控制好资源竞争与防止对象状态被意外修改是非常重要的,而对象状态的不变性也是较难以保证的。 而在Scala中,我们可以通过复制不可变状态的资源(即对象,Scala中一切都是对象,连函数、方法也是)的一个副本,再基于Actor的消息发送、接收机制进行并行编程。

3.Scala 与spark 并发编程

Spark中使用的分布式多线程框架,是Akka。Akka也实现了类似Scala Actor的模型,其核心概念同样也是Actor。因此只要掌握了Scala Actor,那么在Spark源码研究时,至少即可看明白Akka Actor相关的代码。但是,换一句话说,由于Spark内部有大量的Akka Actor的使用,因此对于Scala Actor也至少必须掌握,这样才能学习Spark源码。

java actor和线程有什么区别_Scala Actor与java并发编程的区别相关推荐

  1. java虚拟机线程调优与底层原理分析_Java并发编程——多线程的底层原理

    " Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和 CPU的 ...

  2. Java集合,ConcurrentHashMap底层实现和原理(常用于并发编程)

    为什么80%的码农都做不了架构师?>>>    概述 ConcurrentHashMap常用于并发编程,这里就从源码上来分析一下ConcurrentHashMap数据结构和底层原理. ...

  3. 线程间通信的几种方法_并发编程中的线程间通信

    线程通信的目标是使线程间能够互相发送信号.另一方面,线程通信使线程能够等待其他线程的信号. 线程通信常用的方式有: wait/notify 等待 Volatile 内存共享 CountDownLatc ...

  4. scala java 区别_Scala(和Java)中的类和类型之间有什么区别?

    当您说"类型"时,我将假设您主要是指静态类型. 但是我将在短期内讨论动态类型. 静态类型是可以被静态证明的程序一部分的属性(静态表示"不运行它"). 在静态类型 ...

  5. 简述scala语言与java语联系与区别_scala语言与java的区别

    scala支持关联映射,如可以用(key -> value)表示一个键值对 scala中的所有类型都是对象,包括基本数据类型 scala中的case语句用来判断接收的消息,比java中的swit ...

  6. 请写一个java程序实现线程连接池功能_写一个java程序实现线程连接池的功能

    线程池: import java.util.linkedlist; public abstract class manager { private string mthreadpoolname = n ...

  7. java如何关闭线程池_如何优雅的关闭Java线程池

    ⾯试中经常会问到,创建⼀个线程池需要哪些参数.线程池的工作原理,却很少会问到线程池如何安全关闭的. 也正是因为⼤家不是很关注这块,即便是⼯作三四年的⼈,也会有因为线程池关闭不合理,导致应用⽆法正常st ...

  8. java 如何捕获线程中的异常处理_如何捕获Java中另一个线程抛出的异常?

    参见英文答案 > How to catch an Exception from a thread                                    14个 我正在使用一个创建 ...

  9. java中关于线程的状态属性_深入理解Java多线程与并发框(第①篇)——线程的状态...

    ![](http://img.blog.itpub.net/blog/2020/03/20/5d189a73e1147f37.png?x-oss-process=style/bb) **1. 新建状态 ...

最新文章

  1. 自定义audio样式
  2. linux lisp环境,Ubuntu下Common Lisp配置
  3. 博士申请 | ​英属哥伦比亚大学李霄霄助理教授招收全奖博士生、硕士生
  4. 《动森》里那些看不见的声音设计
  5. SQL注入——SQLmap的进阶使用(十三)
  6. 互联网技术+非技术书单资源分享,都给泥萌!
  7. 吃亏受苦、前途未卜,Nature调查显示博士生三分之一可能抑郁
  8. 专用efi文件包_850个水利水电工程全套表格,施工方/监理方专用表,只发布两天...
  9. 关于Bean Validation
  10. html 可换行属性,html里title属性换行的方法
  11. 华为鲲鹏HCIA认证 常考题
  12. java+mysq 基于jsp825幼儿园管理系统(java,web)
  13. eclipse 选取当前行_Eclipse常用快捷键
  14. MATLAB Coder工具箱介绍【如何利用MATLAB Coder将.m文件生成C/C++代码?】
  15. 经典面试题-什么是java序列化,如何实现java序列化?
  16. 双稳态电路的两个稳定状态是什么_555时基电路内部结构及其工作原理
  17. 【Hibernate步步为营】--映射合集汇总
  18. jzoj P1285 奶酪厂
  19. Kvaser Android驱动程序已经在许多应用程序中得到了成功的应用
  20. Linux系统发展历史

热门文章

  1. python filestorage对象怎么转化成字符串_Python面试的10个常见问题及答案,检验你的学习成果吧!...
  2. bat窗口大小设置_Tomcat的JVM和连接数设置
  3. java 学生信息的增删改查_学生信息的增删改查(java)
  4. tablewidget 行数自适应_控制|基于自适应遗传算法的增程式电动汽车能量管理策略优化...
  5. 看技术笔记,提高嵌入式基础
  6. iframe 覆盖父页面_一次iframe子页面与父页面的通信
  7. JavaSE基础知识(5)—面向对象(Object类)
  8. hibernate框架学习之数据模型-POJO
  9. bzoj 1753: [Usaco2005 qua]Who's in the Middle【排序】
  10. Dubbo接口测试方法及步骤