"어떻게 epoll이 작동하는지"사용자 관점에서 어떻게 작동 하는지를 가정합니다 (코드가 어떻게 통지되는지, 어떻게 처리해야하는지 등). 보기 (epoll의 구현 방법과 동일).
짧은 버전은 매우 간단합니다 : 당신이 가로 질러 앞뒤로 많은 데이터를 전달하지 않는, 그래서 그것은 불투명 한 데이터 구조에 대한 핸들을 사용
- : 그것은 두 가지를 제외하고, 단지
poll
처럼 커널 경계.
poll
에는 특정 상황에서보다 효율적인 코드를 작성할 수있는 (특히 가장자리 트리거 및 원샷 알림) 옵션이 있습니다.
(그것은 단지에서 작동한다는 사실도있다 리눅스. BSD 및 관련 시스템 솔라리스 등, /dev/poll
있으며, 일부 * nixes도 아무것도 없다, 같은 몇 가지 이점을 얻을 수있는 매우 다른 방식으로 kqueue
을 가지고 해당. 당신이 휴대용 코드를 작성하려는 경우, 당신은 poll
를 사용하거나 libevent
같은 몇 가지 높은 수준의 라이브러리를 사용하거나 자신 libevent
의 동등한를 작성해야 하나.)
을 이미 select
및 poll
을 이해하면, 참조로 연결되어있는 the Wikipedia article 및 the blog post은 그 (것)들은, 당신이 알 필요가있는 거의 모두를 말하고, man page는 어떤 간격든지 기입 할 것이다.
그렇지 않은 경우 poll
에 대해 자세히 알아보고 그 후에야 epoll
이 다른 방법을 배우는 것이 의미가 있습니다.
저는 이것이 당신의 주된 질문과 어떻게 관련이 있는지 확실하지 않습니다. 데이터베이스 파일에 epoll
inotify
또는 메시징 시스템의 기초가되는 pipe
또는 socket
, 또는 Linux의 파일 설명자로 표시 될 수있는 그 밖의 모든 것에 대해 epoll
을 이해하는 것이 얼마나 도움이되는지 잘 모르겠습니다. 데이터베이스 폴링 대 메시지 대기열 폴링 간의 차이점. 물론 둘 사이에 큰 차이가 있지만 이벤트 유발 메커니즘은 그 중 하나가 아닙니다.
'http : // en.wikipedia.org/wiki/Epoll'또는 'http://www.kernel.org/doc/man-pages/online/pages/man4/epoll.4.'를 읽었습니까? html' 둘 다 일반적인 설명이 있습니까? 또한,'epoll '을 설명하는 것이 여러분이 논의하는 차이점을 설명하는 데 어떻게 도움이되는지 확신 할 수 없습니다. 데이터베이스 파일에서 inotify를 epoll 할 수 있습니다. 그렇지 않으면 메시징 시스템 아래의 큐를 epoll 할 수 있습니다 ... 그래서 무엇을 목표로합니까? – abarnert
죄송합니다. 실수로 질문을 너무 일찍 게시했습니다. 나는 그것을 업데이트했다. 그게 사물을 분명히합니까? – bitcycle