本文最后更新于50 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
线程之间通信与同步是Java并发编程最主要的两个问题
通信是指线程之间该如何交换信息(注意与进程间通信区分),线程间通信主要有两种方式:共享内存和消息传递。
- 共享内存通信是指两个线程有共享的公共数据区,线程A负责写数据,线程B读数据,该过程对开发人员来说是隐式的,所以共享内存是隐式通信。
- 消息传递通信是指线程之间没有公共数据区,需要线程间显式地直接发送消息来进行通信。
Java主要采取的方式是线程共享内存通信方式。
线程间同步指的是一种用来控制不同线程之间操作发生的相对顺序的机制。同步需要程序员显式的定义,主要是制定一个方法或者一段代码需要在线程之间互斥执行。(Java提供了很多线程同步的工具,比如Synchronized、Lock等)。