Es gibt ein Instrument in meinem LAN, das alle 5-10 ms ein UDP-Datenpaket sendet. In meiner Anwendung habe ich einen Reader-Thread, der beim Start einen Socket mit einem großen Puffer zuweist, dann in eine Endlosschleife geht, um die angesammelten Pakete zu lesen, sie zu analysieren, sie in einen Spooler zu schreiben und dann für eine halbe Sekunde zu schlafen (time.sleep(0.500)
) .Wie weckt man am besten einen schlafenden Python-Thread?
Ich habe mehrere träge Verbraucher für die Daten, von denen die meisten Archivierung oder passive Statistiken generieren. Aber ein Verbraucher (zur Anzeige) benötigt aktuelle Daten und muss den schlafenden Leser wecken (um den Socket zu lesen), bevor er den Spooler abfragt.
Was ist der beste Weg, um einen schlafenden Thread aufzuwecken?
(oder alternativ gibt es einen besseren Weg für einen Thread zu schlafen, das ist einfacher zu wecken?)
Warum brauchen Sie überhaupt zu schlafen? –
Weil es effizienter ist. – BobC