Libev 저장 쳐들 다른 세 가지 데이터 구조를 사용하는 관찰자.의 데이터 구조
ev_timer
및 ev_periodic
과 같이 시간순으로 정렬 된 감시자의 경우 힙 :입니다.
링크 된 목록 : 같은 ev_io
, ev_signal
, ev_child
등
배열 : 같은 ev_prepare
, ev_check
, ev_async
등
는에 힙을 사용합니다 타이머 감시자를 저장하십시오. 그러나 연결된 목록 및 배열을 선택하는 기준은 무엇입니까?
ev_io 관찰자를 저장하는 데이터 구조가 약간 복잡해 보입니다. 먼저 fd
을 인덱스로 사용하고 배열의 요소가 ev_io watcher
의 링크 된 목록 인 배열입니다. 연결된리스트를 요소로 사용하면 배열에 공간을 할당하는 것이 더 편리합니다. 이유인가?
ev_io
의 삽입 또는 제거 작업이 더 자주 발생하고 ev_prepare
이 더 안정적으로 보입니까?
또는 다른 이유가 있습니까?
좋습니다, 알겠습니다. 고마워, 마크! libev 생성에 다시 한번 감사드립니다. :) – changchang