0、概述
下面是我从网上查阅资料总结下来的.
1、背景
多线程编程是每个程序员的基本功,同时也是开发中的难点,处理各种“锁”的问题是让人十分头痛的一件事。例如,设计一个转账功能,怎么保证在多线程下能正常运行?你可能会说,这个简单,在进行转账操作前,先对两个账户加锁,再在两个账户加上synchronized关键字就行了,如下图所示:
其实上面这段代码是有问题的,可能发生程序死锁的情况,如线程1先获取账户A的锁,等待获取账户B的锁,同时,线程2也在做转账操作,先获取了账户B的锁,等待账户A的锁,于是就出现了死锁的情况,如下图:
是不是觉得多线程编程真是太难了,到处是陷阱,一不小心就掉坑里面了?那除了加锁,有没有其他的处理方法呢?答案是:有,就是下文要介绍的Actor模型(Actor model)。
2、Actor模型简介
Actor模型,在1