recherche

Maison  >  Questions et réponses  >  le corps du texte

Python tornado, 在Linux下, 是实现了Epoll模型, 还是会使用Linux的Epoll ?

实际现象

预期现象

上下文环境

PHPzPHPz2781 Il y a quelques jours780

répondre à tous(1)je répondrai

  • 天蓬老师

    天蓬老师2017-04-18 10:25:12

    Vous pouvez consulter le module tornado de ioloop. Il y a des instructions à l'intérieur

    ...
    class IOLoop(Configurable):
        """A level-triggered I/O loop.
        We use `epoll` (Linux) or `kqueue` (BSD and Mac OS X) if they
        are available, or else we fall back on select(). If you are
        implementing a system that needs to handle thousands of
        simultaneous connections, you should use a system that supports
        either `epoll` or `kqueue`.
    ...

    Utilisez Linux dans le système epoll, utilisez BSD dans Mac OS X ou kqueue et utilisez select dans d'autres systèmes.

    utilise le module python dans la bibliothèque standard select. En fait, le module select n'est qu'un appel au select du système et n'est pas implémenté par lui-même.

    Si vous souhaitez étudier en profondeur, vous pouvez consulter le code source


    Merci @evian pour l'ajout. Le module
    de la bibliothèque standard pythonselect est une encapsulation de diverses I/O solutions de réutilisation dans le système.

    >>> import platform
    >>> platform.linux_distribution()
    ('Red Hat Enterprise Linux Server', '6.5', 'Santiago')
    >>> import select
    >>> dir(select)
    ['EPOLLERR', 'EPOLLET', 'EPOLLHUP', 'EPOLLIN', 'EPOLLMSG', 'EPOLLONESHOT', 'EPOLLOUT',         
    'EPOLLPRI', 'EPOLLRDBAND', 'EPOLLRDNORM', 'EPOLLWRBAND', 'EPOLLWRNORM', 'PIPE_BUF', 
    'POLLERR', 'POLLHUP', 'POLLIN', 'POLLMSG', 'POLLNVAL', 'POLLOUT', 'POLLPRI', 'POLLRDBAND', 
    'POLLRDNORM', 'POLLWRBAND', 'POLLWRNORM', '__doc__', '__file__', '__name__', 
    '__package__', 'epoll', 'error', 'poll', 'select']
    

    répondre
    0
  • Annulerrépondre