老师,worker抢占机制,涉及到多个worker的锁竞争,应该影响性能才对啊,为啥还能提高性能呢?
如题。。。
116
收起
正在回答 回答被采纳积分+1
2回答
慕侠5591593
2020-04-10 11:24:22
我觉得这个可以这么理解:
要了解worker抢占机制就要先明白一个名词‘惊群问题’
惊群问题是指在多线程(或多进程)场景下,有多个线程在等待某一资源可用,一旦这个资源可用,那么所有等待这个资源的线程都会被唤醒,但是资源只有一份,那么只有一个线程获得这个资源,其它线程都获取失败
惊群问题导致了不必要的线程唤醒,实际上只有一个线程能获取这份资源,那么理想情况下只唤醒一个线程就行了。而唤醒多个线程导致了不必要的线程调度,造成系统开销
而Nginx为了避免惊群问题,就有了accept_mutex这个锁,在Nginx默认下是开启的,当accept_mutex开启后,任意时刻只有一个进程能获得accept_mutex锁,获得accept_mutex锁的进程能监听web端口;无法获得accept_mutex锁的进程会把监听套接字从其epoll中删除
Java架构师讲师团
2019-12-10 13:05:42
可以说他们是共享内存的
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星