2019独角兽企业重金招聘Python工程师标准>>>

actor 并发模型是把一个个计算序列按抽象为一个一个 Actor 对象,每一个 Actor 之间通过异步的消息传递机制来进行通讯

这样一来,本来顺序阻塞的计算序列,就被分散到了一个一个 Actor 中

程序在 Actor 中的操作应该尽量保证非阻塞性

akka中 actor 根据具体的 Dispatcher 来决定如何处理某一个 actor 的消息

默认的 dispatcher 是 ForkJoinExecutor,只适合处理非阻塞非 CPU 密集型的消息

另一些 Dispatcher 可以用于处理阻塞或者 CPU 密集型的消息,底层实现用到 CachedThreadPool

这两种 Dispatcher 结合起来,便能在 jvm 上建立完整的并发模型


基于协程的实现,goroutine

Golang 的 runtime 实现了 goroutine 和 OS thread 的 M:N 模型,实际的 goroutine是基于线程的更加轻量级的实现

可以在 Golang 中大量创建 goroutine 而不用担心昂贵的 context swtich 所带来的开销

goroutine 之间可以通过 channel 来进行交互

go 将将所有system call 都 wrap 到了标准库中,在针对这些systemcall进行调用时会主动标记 goroutine 为阻塞状态并保存现场,交由 scheduler执行

所以golang中大部分情况下可以安心地在goroutine中使用阻塞操作而不用担心并发性受到影响

goroutine的这种并发模型有一个非常明显的优势,可以简单地使用人见人爱的阻塞编程方式来抒发异步的情怀,只要能合理运用 go 关键字

相比较于akka的actor而言,goroutine的程序可读性更强且更好定位错误

转载于:https://my.oschina.net/zhangthe9/blog/3022933

goroutine 相关知识8相关推荐

  1. JS作用域相关知识(#精)

    在学习<你不知道的JS>一书中,特将作用域相关知识在此分享一下: #说到作用域,就不得不提到LHS查询和RHS查询: 1)如果查询目的是对变量进行赋值,则使用LHS查询 2)如果查询目的是 ...

  2. 工业相机参数之帧率相关知识详解

    点击上方"小白学视觉",选择加"星标"或"置顶"重磅干货,第一时间送达 工业相机是机器视觉系统的重要组成部分之一,在机器视觉系统中有着非常重 ...

  3. shell的相关知识(变量、脚本定义)

    一.shell的相关知识: 1.对于shell编程语言大体分为:机器语言.汇编语言.高级语言 2.shell变量类型:事先确定数据的存储格式和长度 shell变量分为:字符型.数值型 数值型又分为:整 ...

  4. go语言中无法获取goroutine相关的信息

    2019独角兽企业重金招聘Python工程师标准>>> java中可以通过Thread.getId()或者Thread.getName()来获得当前的Thread标识信息,但是gol ...

  5. 视频压缩算法的相关知识

    视频压缩算法的相关知识 MPEG-1 MPEG 视频压缩编码后包括三种元素:I帧(I-frames).P帧(P-frames)和B帧(B-frames).在MPEG编码的过程中,部分视频帧序列压缩成为 ...

  6. linux 格式化 dvd,linux 服务器分区格式化相关知识 -mount

    关于linux 系统mount和mkfs 的相关知识: 使用mount 1)Mount的相关格式:mount [-t 文件类型][-o  选项] devicedir 详解: -t 文件类型,通常默认m ...

  7. WinForm开发,窗体显示和窗体传值相关知识总结

    以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm开发,把用到的相关知识整理如下 A.WinForm中窗体显示显示窗体可以有以下2种方法: Form.ShowDialo ...

  8. js基础--数据类型检测的相关知识

    欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...

  9. 转载:关于错排的相关知识

    转载:关于错排的相关知识 杭电2048相关知识充电 转自:错排公式 分类: 数论 关于程序2012-06-08 19:07 335人阅读 评论(0) 收藏 举报 n2 错排问题 错排问题 就是一种递推 ...

最新文章

  1. Xamarin Essentials教程获取路径文件系统FileSystem
  2. opencv中图像的基本结构 类型的定义
  3. 【项目合作】低清老视频转高清,视频超分辨
  4. python中面向对象空间时间_零基础老男孩学Python|面向对象之类的空间问题
  5. [论文翻译] Medical Matting: A New Perspective on Medical Segmentation with Uncertainty
  6. pair的用法 make_pair
  7. Python注释(多行注释和单行注释)用法详解
  8. 唯品会 Dragonfly 日志系统的 Elasticsearch 实践
  9. 小ck活动机器人包包_古力娜扎空降“小ck”线下门店,手上的包包亮了,仙气又便宜!...
  10. zmud之汉字转换为数字
  11. 家用洗地机到底好不好用?家用洗地机分享
  12. 机器学习之模拟退火算法
  13. leaflet maxZoom突破18
  14. hp-gen8安装esxi6.7找不到raid硬盘填坑
  15. 计算机毕业设计(附源码)python学校健身房管理系统
  16. Java学习网站 [摘自互联网]
  17. iOS 高仿爱鲜蜂APP
  18. 双指针算法(逛画展)
  19. 自动驾驶控制算法——车辆运动学模型
  20. Prometheus监控系部署配置过程

热门文章

  1. 自定义右键菜单,禁用浏览器自带的右键菜单[右键菜单实现--Demo]
  2. 为Xen虚拟机扩容根文件系统(LVM)
  3. 正则表达式去除括号的问题
  4. C# 获得 当年1月1号
  5. Jmeter 录制https(五)
  6. 史上最权威的 Activiti 框架学习
  7. 【转】RegSetValueEx运行时失败,返回代码为5,解决方法
  8. CSocket,CAsyncSocket多线程退出时的一些注意事项(解决关闭WinSoket崩溃的问题)
  9. C++对带有分隔符的字符串 分割为数字的通用解决方案
  10. java.net.SocketException: Write failed: Broken pipe异常分析