如果你真的对a感兴趣的话 理论 在线程通信方面,您可能希望研究类似的形式主义 pi微积分 。
要在线程之间进行通信,您需要使用操作系统和/或运行时提供的任何机制。中断可能会异常低级,但如果您的线程使用套接字或命名管道进行通信,则可能会隐式使用它们。
一种常见的模式是使用共享内存块实现共享状态,依赖于os提供的同步原语(如互斥锁)来避免在从块读取时忙于等待。请记住,如果您有线程,那么您必须已经拥有某种调度程序(无论它是来自操作系统的本机还是您的语言运行时中的模拟)。因此,该调度程序可以提供同步对象和“休眠”功能,而不必依赖于硬件支持。
套接字,管道和共享内存也在进程之间工作。有时,运行时会为您在同一进程中为线程提供更轻量级的同步方式。共享内存在单个进程中更便宜。有时您的运行时也会为您提供原子消息传递机制。
线程通信的两种最常见的机制是共享状态和 消息传递 。
线程进行通信的最常见方式是通过一些共享数据结构,通常是队列。有些线程将信息放入队列,而其他线程将其取出。队列必须受操作系统工具(如互斥锁和信号量)的保护。中断与它无关。