6.2.3 实体间的通信
线程与被称为对等线程的进程中其他线程之间,不要求特殊的通信机制。线程可以直接与其他对等线程进行数据的传递和接收。这节省了使用多个进程时,为了建立和维护特殊的通信机制所使用的系统资源。线程是通过使用进程地址空间中的共享内存来通信的。例如,如果进程声明了一个全局队列,进程中的线程A可以保存对等线程B将要处理的文件名。线程B可以从队列中读取该文件名并处理数据。
进程也可以通过共享内存进行通信,但是进程有着独立的地址空间,因此共享内存存在于进行通信的两个进程的地址空间外部。如果有一个进程希望将它处理的文件名传递给其他进程,可以使用消息队列。需要在涉及的进程的地址空间外部建立这个消息队列,而且通常需要大量的设置才能够很好地工作。这增加了用于维护和访问共享内存所使用的时间和空间。