Gibt es in Python eingebaute Cross-Thread-Ereignisse?

8

Gibt es in Python eine eingebaute Syntax, die es mir erlaubt, eine Nachricht an einen bestimmten Python-Thread innerhalb meines Problems zu senden? Wie 'in Warteschlange gestelltes Signal' in pyQt oder :: PostMessage () in Windows. Ich brauche dies für die asynchrone Kommunikation zwischen Programmteilen: Es gibt eine Reihe von Threads, die Netzwerkereignisse verarbeiten, und sie müssen diese Ereignisse in einen einzelnen "Logik" -Thread schreiben, der Ereignisse sicher single-threaded übersetzt.

    
grigoryvp 24.03.2009, 08:04
quelle

2 Antworten

10

Das Modul Warteschlange ist Python und eignet sich gut für das, was Sie beschreiben.

Sie können eine Warteschlange einrichten, die von allen Threads gemeinsam genutzt wird. Die Threads, die die Netzwerkereignisse verarbeiten, können queue.put verwenden, um Ereignisse in die Warteschlange zu stellen. Der Logik-Thread würde mit queue.get Ereignisse aus der Warteschlange abrufen.

%Vor%     
Chris AtLee 24.03.2009, 12:11
quelle
1

Ich bin mir nicht wirklich sicher, wonach Sie suchen. Dafür gibt es aber keine eingebaute Syntax. Werfen Sie einen Blick auf die Warteschlange und threading Module. Es gibt viele hilfreiche Dinge wie Warteschlangen, Bedingungen, Ereignisse, Sperren und Semaphore, die verwendet werden können, um alle Arten von synchroner und asynchroner Kommunikation zu implementieren.

    
unbeknown 24.03.2009 08:36
quelle

Tags und Links