并行计算:

Scala为了充分使用多核CPU,提供了并行集合(有别于前面的串行集合),用于多核环境的 并行计算。
主要用到的算法有:

  1. Divide and conquer : 分治算法,Scala 通过 splitters(分解器),combiners(组合器)等抽象层来实现,
    主要原理是将计算工作分解很多任务,分发给一些处理器去完成,并将它们处理结果合并返回
  2. Work stealin 算法【学数学】,主要用于任务调度负载均衡(load-balancing),通俗点完成自己的 所有任务之后,发现其他人还有活没干完,主动(或被安排)帮他人一起干,这样达到尽早干完的目

两个命令的结果1234513542

(1 to 5).foreach(println(_)) println()
(1 to 5).par.foreach(println(_))

查看并行集合中元素访问的线程:

object ParDemo02 {def main(args: Array[String]): Unit = {val result1 = (0 to 100).map(case _ => Thread.currentThread.getName).distinct //case可以省略val result2 = (0 to 100).par.map(_ => Thread.currentThread.getName).distinct //case可以省略println(result1) //非并行 结果为只有一个 mainprintln("--------------------------------------------")println(result2) //并行 结果取决于具体cpu线程}
}

Scala 之 并行计算相关推荐

  1. hadoop,spark,scala,flink 大数据分布式系统汇总

    20220314 https://shimo.im/docs/YcPW8YY3T6dT86dV/read 尚硅谷大数据文档资料 iceberg相当于对hive的读写,starrocks相当于对mysq ...

  2. Scala消息通信之akka,akka案例

    #Scala编程实战 ##一. 课程目标 ###1. 目标:熟练使用Scala编写程序 ##二. 项目概述 ###1. 需求 目前大多数的分布式架构底层通信都是通过RPC实现的,RPC框架非常多,比如 ...

  3. Scala _10Actor Model

    概念理解 Actor Model是用来编写并行计算或分布式系统的高层次抽象(类似java中的Thread)让程序员不必为多线程模式下共享锁而烦恼,被用在Erlang 语言上, 高可用性99.99999 ...

  4. Windows下安装Scala

    Scala是一种类似Java的纯面向对象的函数式编程语言,由于函数具有明确的确定输入对确定输出的关系,所以适合推理和计算,一切函数都可以看成一系列的计算组成,另外由于Scala函数是没有副作用和透明的 ...

  5. Scala之集合Collection

    概述 Scala的集合类可以从三个维度进行切分: 可变与不可变集合(Immutable and mutable collections) 静态与延迟加载集合 (Eager and delayed ev ...

  6. Scala paralle

    list.par def par: scala.collection.parallel.immutable.ParSeq[Int] val list = List(1,2,3,4,5) list.pa ...

  7. Scala的函数式编程

    为什么80%的码农都做不了架构师?>>>    Scala的函数式编程 昨天去一家公司面试,额,他们想招erlang的开发人员,然后我会点scala,都是函数式语言么.所以就让我过去 ...

  8. Scala——多范式, 可伸缩, 类似Java的编程语言

    Scala 第一章 是什么 一 Scala 介绍 第二章 Scala 安装使用 一 安装语言环境 二 常用开发工具整合Scala插件 三 创建Scala项目 第三章 Scala 基础 一 数据类型 二 ...

  9. scala集合算子大全及分类汇总——倾心整理

    ++ 合并集合,返回新的数组 val arr1=Array(1,2,3) val arr2=Array(4,5,6) val arr3=arr1++arr2 arr3.foreach(println) ...

最新文章

  1. 微生物组学研究的可再现性、可重现性、稳定性与普适性
  2. IntelliJ IDEA导入多个eclipse项目到同一个workspace下
  3. this super 在接口以及实现类中所指的对象
  4. clickhouse 航空数据_趣头条基于Flink+ClickHouse的实时数据分析平台
  5. 2017.10.8 软件工程----总体设计
  6. python mainloop bind_Python3 tkinter基础 Frame bind 捕捉多键同时按
  7. 怎么配置网站mysql数据库_本地DZ网站如何配置本地MYSQL数据库
  8. 透过新硬件环境下的存储技术,看未来数据库系统崛起(附PPT)
  9. android 键盘遮盖输入框_Android各种键盘挡住输入框解决办法
  10. C语言第六次作业指针,c语言第六次作业解析
  11. Diango博客--24.单元测试:测试评论应用
  12. 水泊梁山迎佳节,Python 抽奖助好汉
  13. 游标sql server_SQL Server游标教程
  14. 数据提交到服务器后,在中间层所做的修改,能及时反应到客户端吗?
  15. TruckSim 建立牵引车模型(一)
  16. 一些简单的css,html,js笔记分享给大家,希望能够帮助到大家
  17. Top-down Visual Saliency Guided by Captions阅读笔记
  18. Logstash报错:[ERROR][logstash.agent ] Failed to execute action {...
  19. 电商搜索“优化商品排序”实践方案
  20. Zabbix 5.4.12 源码编译安装

热门文章

  1. 计算机毕业设计ssm基于SSM框架在线电影评论投票系统3gr0f系统+程序+源码+lw+远程部署
  2. 服务器监控软件(一 、大致讲解篇)
  3. word2013删除下载的模板
  4. 使用word 2013 发布csdn博客
  5. 2014年站群风云录盘点
  6. 数据采集器与爬虫相比有哪些优势?
  7. iphone忘记访问控制密码之后如何找回
  8. u盘格式化后如何恢重要的数据
  9. xlwings模块(数据保存为xlsx文件)
  10. robotframework 内置库BuiltIn学习笔记