akka框架原理分析

前言akka框架是一个分布式高并发框架,基于actor模型开发,为想要使用actor模型的开发人员屏蔽了基本行为处理、actor生命周期管理、异常处理、网络通信等的细节,学习akka框架必须先了解actor模型。本文将简单介绍一下actor模型是什么,akka中actor实现的形式。1. 什么是Actor模型?局限点儿来回答这个问题比较容易理解,多线程(或进程,以下都用线程)并发...
摘要由CSDN通过智能技术生成

 

前言

akka框架是一个分布式高并发框架,基于actor模型开发,为想要使用actor模型的开发人员屏蔽了基本行为处理、actor生命周期管理、异常处理、网络通信等的细节,学习akka框架必须先了解actor模型。本文将简单介绍一下actor模型是什么,akka中actor实现的形式。

1. 什么是Actor模型?

局限点儿来回答这个问题比较容易理解,多线程(或进程,以下都用线程)并发编程时,线程间通信有两种方式:共享内存和消息传递。其中Java程序源熟悉的多线程通信方式就是共享内存的方式;而scala语言则是消息传递的方式,其具体的实现的方式就是Actor模型。

2. 共享内存 vs 消息传递

消息传递的方式比之共享内存更适应多核处理器,为什么这么说,我们可以从CPU使用率的方面来理解。在共享内存的模式下,发生数据竞争时,需要同步,或者可以说加锁,加锁的情况下就必然会导致某个线程要停止工作,这时为了不浪费该线程持有的CPU资源,处理方式是该线程保存自己的上下文信息,让出CPU给其他线程使用。其中保存和恢复上下文的工作是一段很浪费计算能力的操作,这在Actor模型中是不存在的,每个运行着的Actor都持续持有自己的CPU资源完成自己的工作。

3. Actor模型示意简图

 更细节的示意图

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值