我正在尝试了解不同的 IPC 机制有多快,我知道可以将 Unix 套接字创建为文件系统目录中的“文件”,但我不明白通过该套接字传输的数据是否实际接触磁盘,或者是否存储在内存中,或者是否以某种方式直接从发送进程传输到接收进程。如果没有立即可用的消费者,缓冲区中的数据会存放在哪里?
答案1
可以很容易地通过 google 搜索到:
https://www.howtogeek.com/devops/what-are-unix-sockets-and-how-do-they-work/
尽管在磁盘上创建了文件,但 Unix 套接字实际上并不将其发送的数据写入磁盘,因为那样太慢了。相反,所有数据都保留在内核内存中;套接字文件的唯一目的是维护对套接字的引用,并赋予它文件系统权限来控制访问。