如何解决在同一台机器,信号或插座上进行进程间通信,该如何确定?
| 在我看来signal
和socket
均可用于此工作,
您如何决定实际使用哪个?
解决方法
将信号用于IPC有点不方便和原始。您确实应该在Unix套接字(不是TCP套接字!)和管道之间进行选择。
管道通常更易于编程,因为它们保证了小于3的单个2原子。但是它们确实有其局限性。例如,当写入器比读取器快时,当管道缓冲区已满时,写入器将开始阻塞。默认情况下,此缓冲区的大小约为64k,并且至少在Linux中,如果不重新编译内核就无法更改该缓冲区。管道也是单向的,这意味着您必须在每个进程中保留一对管道,一个用于读取,一个用于写入。
Unix套接字具有可配置的发送缓冲区大小和更高级的编程接口。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。