Linux pipe read/writes 总是导致上下文切换吗?
Do Linux pipe read/writes ALWAYS cause a context switch?
如果 Linux 管道的两端由同一个进程处理,是否仍然存在到内核的上下文切换?我怀疑 "yes",但我想要一个明确的答案。 BSD 应该是 "yes",我相信。
除了这些怀疑之外,至少会有一个切换到内核以在管道内进行锁定操作。
*这将是针对特殊情况的软件安装,例如“#child procs = 0”,以便父读写两端等。在这种情况下,fork 将被线程运行器替换。假设完整的对象模型线程安全。*
你说得对,至少会有一次内核切换,但这只是一次权限更改(通过系统调用实现),而不是上下文切换。
如果 Linux 管道的两端由同一个进程处理,是否仍然存在到内核的上下文切换?我怀疑 "yes",但我想要一个明确的答案。 BSD 应该是 "yes",我相信。
除了这些怀疑之外,至少会有一个切换到内核以在管道内进行锁定操作。
*这将是针对特殊情况的软件安装,例如“#child procs = 0”,以便父读写两端等。在这种情况下,fork 将被线程运行器替换。假设完整的对象模型线程安全。*
你说得对,至少会有一次内核切换,但这只是一次权限更改(通过系统调用实现),而不是上下文切换。