我有一个多进程项目,我使用域套接字作为 IPC 方法。
例如,进程A有多个线程,它们调用'write'函数将数据发送给进程B。(所有域套接字函数都受信号量保护。)当系统繁忙时,一个线程被阻塞'写',它根本没有发布。我检查了进程B,没有问题,它仍然调用'select'和'read'函数,几乎没有时间损失。(至少 10 毫秒,根据滴答声。)
除了接收者不读取数据之外,域套接字块中是否存在“写入”功能?我检查了过程B - 接收部分完全没有问题。它在没有任何阻塞情况的情况下工作。调用'write'的线程数约为5~6个,并且它们调用'write'的频率很高。(某些情况下,每 1 秒 100~200 次。)
我的项目是基于 MIPS 的嵌入式 linux 系统。工具链使用的是 uclibc,所以它可能与基于 PC 的 linux 系统不同。