Scala 之 并行计算
并行计算:
Scala为了充分使用多核CPU,提供了并行集合(有别于前面的串行集合),用于多核环境的 并行计算。
主要用到的算法有:
- Divide and conquer : 分治算法,Scala 通过 splitters(分解器),combiners(组合器)等抽象层来实现,
主要原理是将计算工作分解很多任务,分发给一些处理器去完成,并将它们处理结果合并返回 - 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 之 并行计算相关推荐
- hadoop,spark,scala,flink 大数据分布式系统汇总
20220314 https://shimo.im/docs/YcPW8YY3T6dT86dV/read 尚硅谷大数据文档资料 iceberg相当于对hive的读写,starrocks相当于对mysq ...
- Scala消息通信之akka,akka案例
#Scala编程实战 ##一. 课程目标 ###1. 目标:熟练使用Scala编写程序 ##二. 项目概述 ###1. 需求 目前大多数的分布式架构底层通信都是通过RPC实现的,RPC框架非常多,比如 ...
- Scala _10Actor Model
概念理解 Actor Model是用来编写并行计算或分布式系统的高层次抽象(类似java中的Thread)让程序员不必为多线程模式下共享锁而烦恼,被用在Erlang 语言上, 高可用性99.99999 ...
- Windows下安装Scala
Scala是一种类似Java的纯面向对象的函数式编程语言,由于函数具有明确的确定输入对确定输出的关系,所以适合推理和计算,一切函数都可以看成一系列的计算组成,另外由于Scala函数是没有副作用和透明的 ...
- Scala之集合Collection
概述 Scala的集合类可以从三个维度进行切分: 可变与不可变集合(Immutable and mutable collections) 静态与延迟加载集合 (Eager and delayed ev ...
- Scala paralle
list.par def par: scala.collection.parallel.immutable.ParSeq[Int] val list = List(1,2,3,4,5) list.pa ...
- Scala的函数式编程
为什么80%的码农都做不了架构师?>>> Scala的函数式编程 昨天去一家公司面试,额,他们想招erlang的开发人员,然后我会点scala,都是函数式语言么.所以就让我过去 ...
- Scala——多范式, 可伸缩, 类似Java的编程语言
Scala 第一章 是什么 一 Scala 介绍 第二章 Scala 安装使用 一 安装语言环境 二 常用开发工具整合Scala插件 三 创建Scala项目 第三章 Scala 基础 一 数据类型 二 ...
- scala集合算子大全及分类汇总——倾心整理
++ 合并集合,返回新的数组 val arr1=Array(1,2,3) val arr2=Array(4,5,6) val arr3=arr1++arr2 arr3.foreach(println) ...
最新文章
- 微生物组学研究的可再现性、可重现性、稳定性与普适性
- IntelliJ IDEA导入多个eclipse项目到同一个workspace下
- this super 在接口以及实现类中所指的对象
- clickhouse 航空数据_趣头条基于Flink+ClickHouse的实时数据分析平台
- 2017.10.8 软件工程----总体设计
- python mainloop bind_Python3 tkinter基础 Frame bind 捕捉多键同时按
- 怎么配置网站mysql数据库_本地DZ网站如何配置本地MYSQL数据库
- 透过新硬件环境下的存储技术,看未来数据库系统崛起(附PPT)
- android 键盘遮盖输入框_Android各种键盘挡住输入框解决办法
- C语言第六次作业指针,c语言第六次作业解析
- Diango博客--24.单元测试:测试评论应用
- 水泊梁山迎佳节,Python 抽奖助好汉
- 游标sql server_SQL Server游标教程
- 数据提交到服务器后,在中间层所做的修改,能及时反应到客户端吗?
- TruckSim 建立牵引车模型(一)
- 一些简单的css,html,js笔记分享给大家,希望能够帮助到大家
- Top-down Visual Saliency Guided by Captions阅读笔记
- Logstash报错:[ERROR][logstash.agent ] Failed to execute action {...
- 电商搜索“优化商品排序”实践方案
- Zabbix 5.4.12 源码编译安装