내 LAN에 5 ~ 10 밀리 초마다 UDP 데이터 패킷을 보내는 장비가 있습니다. 내 응용 프로그램에서 시작될 때 큰 버퍼 소켓을 할당하고 축적 된 패킷을 읽고, 구문 분석하고, 스풀러에 쓰고, 잠시 후 잠을 자도록 무한 루프를 입력하는 판독기 스레드가 있습니다 (time.sleep(0.500)
) .잠자는 파이썬 스레드를 깨우는 가장 좋은 방법은 무엇입니까?
저는 데이터에 대해 게으른 소비자가 여러 명 있는데, 대부분 수동 통계를 보관하거나 생성합니다. 그러나 한 소비자 (디스플레이 용)는 최신 데이터를 필요로하므로 스풀러를 쿼리하기 전에 잠자는 독자를 깨워서 소켓을 읽어야합니다.
수면 스레드를 깨우는 가장 좋은 방법은 무엇입니까? 나는 threading.condition.wait()를 선택 timeout 인수를 가지고 있음을 발견하는 데 실패했다
왜 잠자기를해야하나요? –
이렇게하는 것이 더 효율적이기 때문입니다. – BobC