引言

在并发编程中,线程之间相互交换信息就是线程通信。目前有两个机制:

  • 内存共享:java使用这种机制
  • 消息传递:actor模型即是异步,非阻塞的一个消息传递,一切皆是Actor。Akka是对于Java的actor模型类库,用于构建高并发、分布式、可容错、事件驱动的基于JVM的应用。

内存共享方式,必须通过锁或者CAS技术去获取或者修改共享的变量,看起来比较简单,但是锁的使用难度比较难,业务复杂的话还有可能发生死锁。
消息传递方式就是显示的通过发送消息来进行线程间通信,对于大型复杂的系统,可能优势更足。

线程通信机制区别.png