美文网首页
Kitura的多线程

Kitura的多线程

作者: 小凿子 | 来源:发表于2017-01-27 17:47 被阅读0次

    在Nginx中,由Master进程管理多个Worker进程,而每一个连接是由一个Worker进程处理的。Nginx没有像PHP-FPM那样才用Master进程分发请求,而是由操作系统内核机制完成(内置负载均衡算法),再通过Mutex来避免“惊群”现象。

    Worker进程的数量一般会和机器CPU核数一致。每个进程通过Reactor的事件处理机制,实现了循环处理多个准备好的事件。这样处理的优点在于无需创建线程,没有上下文切换,最大化利用CPU。这样处理方式的缺点在于,Reactor是同步的处理方式,因此服务器在处理长时间IO操作时会阻塞其他链接。

    Nginx在1.7.11中引入了AIO线程池技术,如此大文件可以用AIO线程池,小文件可以直接sendfile。

    Kitura利用了Apple的GCD来管理线程池,实现高并发。

    相关文章

      网友评论

          本文标题:Kitura的多线程

          本文链接:https://www.haomeiwen.com/subject/xprfittx.html