gpt4 book ai didi

c - 为什么 Apache MPM prefork.c 使用互斥量来保护 accept()?

转载 作者:太空狗 更新时间:2023-10-29 17:02:36 25 4
gpt4 key购买 nike

我坐下来阅读 Apache's MPM prefork.c并且此代码使用名为 accept_mutex 的变量来防止多个线程调用 accept()。这很奇怪,因为据我所知accept() is thread-safe .

accept() 线程安全吗?这是平台兼容性问题吗?如果是这样,什么平台实现了非线程安全的 accept()

最佳答案

这在 Apache performance tuning documentation 中有解释,在“accept() Serialization - multiple sockets”下。简而言之,至少在某些操作系统下,传入连接将唤醒 所有select()poll()< 中等待传入连接的 Apache 进程,但会导致 accept() 除了其中一个以外的所有失败。这是低效的,因此使用互斥锁来确保一次只有一个进程接受传入连接。

关于c - 为什么 Apache MPM prefork.c 使用互斥量来保护 accept()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15048701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com