对Akka的初步了解

来源:互联网 发布:淘宝怎么搜短信轰炸机 编辑:程序博客网 时间:2024/04/29 14:53

初步了解了下Akka,给我的印象是这些词汇: Actors,容错,函数式编程。这些怎么看都很像Erlang,在学习Erlang的时候看到最多的概念就是通过消息的传递,而非同步来达到并发的目的。还有就是鼓励崩溃,自愈的能力。而这些也正是如今Akka所骄傲的地方。Erlang给我最大的收获是原来要实现并发可以不用同步。

先说点题外话,很多初级开发人员提到并发就想到多线程,同步。大多数的Java面试中,笔试题也都是用对synchronized关键字的使用来考察一个人懂不懂并发和多线程。当然这只是对初级人员的考察。并发可以说是编程中的复杂话题,众所周知java程序比较好写,很多非计算机专业的人也说他们很快就学会了java找到了一个工作,以前也经常听到我那些喜欢C++的大学同学如是说,java那么容易学,谁都可以做。但是工作了这些年,我发现真正懂得怎么去用java的开发人员其实非常之少,大多数人对面向对象的认识都只停留在继承,多态的概念上。Java从一开始就支持多线程编程,这也成为java的一个亮点,然而很少有人会写多线程的程序,多线程就像跟面向对象并列的另外一个Java高级话题。我所见过的很多java开发者都是停留在synchronized的地步。诚然在普通的应用程序开发中也很少用到多线程和并发,这些知识也就成了仅限于面试问题而已,可能很多开发者穷其一生也不会触及并发程序设计。就在昨天我尽然听到一个做C++的同事问我怎么才能找到一份java的工作,现在java的工作机会太多了。

回归正题,如果我们对并发的学习深入一些就明白并发的方式不只是多线程和同步,相反,同步的越少越好。爱立信在他们的电信产品里面使用了自己的语言Erlang,这个强大的语言提供了非常强大的并发性和容错性。然而Erlang的应用却没有那么广泛,今天Akka的出现可能亮瞎了不知道多少人的眼睛,他们也许并不知道Erlang可以提供相同的功能。然后Akka之所以亮瞎我们的眼睛是有道理的,他可以跟java程序无缝的结合,如果你不懂Scala也没有关系。另外一个原因可能是他方便使用,他是一个库!还有它面向对象的特性。

Akka实现容错和自愈的方式也跟Erlang如出一折。 我说了这么多怎么好像一直在说Akka跟Erlang很像呢?

好了,我还是研究下怎么来用Akka吧。

0 0
原创粉丝点击