Mastering Akka

来源:互联网 发布:华为大数据工程师待遇 编辑:程序博客网 时间:2024/05/29 17:24
程序是怎样运行的?
进程和线程

在当前抢占式多任务操作系统中,程序员几乎或者彻底失去了命令处理器调整程序执行次序的权利
将程序中的各个可执行部分分配给指定的处理器,通常是操作系统OS的工作,这种机制称作多任务处理,而且对计算机用户透明
进程是指被执行的计算机程序的一个实例
在同一个进程中出现的独立控制流实体称为线程,
在执行程序的过程中,每个线程都会描述程序栈和程序计数器的当前状态
可以将进程视为一组OS线程以及这些线程共享的内存和资源

启动一个新的JVM实例永远只会创建一个新的进程,在JVM进程中,多个线程可以同时运行,
JVM使用java.lang.Thread 类代表其线程

每当一个新的jvm进程开始运行时,默认情况下他都会创建多个线程。而这些线程中最重要的线程是主线程,该线程会执行scala 程序中的main方法

线程池:基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多的线程(都还生龙活虎的),池中的线程执行调度由池管理器来处理,当有线程任务时,从池中取出一个,执行完成后将线程对象归还给线程池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。


akka中文文档

Actor 系统

Actor 是封装状态和行为的对象,他们唯一的通讯方式是交换消息--把消息存放在接收方的邮箱里

  • 我觉得我距离akka的大门很近了,加油、

  • akka是瑞士的一座山

  • actor 模型是为了减少共享状态

object jingtaitiaojian { def main(args: Array[String]): Unit = { var i, j = 0 (1 to 10000).foreach(_ => i = i + 1) (1 to 10000).foreach(_ => Future(j = j + 1)) Thread.sleep(1000) println(s"i $i and j $j") }}