일부 asyncore.dispatcher
인스턴스를 GLib의 default main context에 통합하려고합니다.파이썬에서 glib.Source를 만드는 방법은 무엇입니까?
그림 asyncore.socket_map
에 다양한 소켓에서 이벤트 준비를 감지 할 수있는 custom GSource
을 만들 수 있습니다. C에서 나는 이것들이 필요한 GSourceFuncs
을 생성함으로써 이루어 졌다고 믿습니다.이 호출은 싸고 비 차단 호출을 선택하여 asyncore.read, .write 및 friends를 사용하여 처리하도록 할 수 있습니다.
실제로 파이썬에서 GSource를 어떻게 만듭니 까? glib.Source 클래스는 undocumented이고 클래스를 대화식으로 사용하려는 시도는 헛된 것입니다.
asyncore
모듈에서 소켓 이벤트를 처리 할 수있는 다른 방법이 있습니까? (잠재적 처리량 및 CPU 사용을 위험에 빠뜨리는)
내 질문에 : _ 시간 초과 (또는 잠재적 인 처리량 및 CPU 사용을 위험에 빠뜨리는)에 의존하지 않음. 답변을 삭제할 수 있습니다. –
시간 초과가 0이므로 실제로 시간 초과를 사용하지 않으므로 함수는 직접 데이터를 처리하는 즉시 (실제로 데이터를 처리하는 즉시, io에서는 대기하지 않을 것입니다) 어디서나 데이터를 읽을 지 여부를 결정합니다. –
이 함수는 기본 메인 루프에 보류중인 더 높은 우선 순위 이벤트가 없을 때마다 호출됩니다. 그렇다면 아무 이유없이 CPU를 빨아들입니다. 이벤트를 실제로 사용할 수 없다면 이벤트 루프를 사용할 필요가 없습니다! –