Hallo,
Ich suche eine Möglichkeit einfach Nachrichten unter Threads auszutauschen. Bin hierbei auf das candygram.sourceforge.net Project gestossen, welches sich sehr viel versprechend an hört. Nur habe ich im FAQ der Seite gelesen, dass es unter manchen Betriebssystem zu Begrenzungen bei der Anzahl von Threads kommen kann. Ich müsste aber unter Umständen sehr sehr viele Threads gleichzeitig laufen lassen. Habt ihr damit schon Erfahrungen gemacht? Wie viel Threads kann man in der Regel öffnen? Dachte bisher, dass ein paar 1000 problemlos möglich wären. Welche Techniken verwendet ihr zur Kommunikation unter Threads?
Viele Grüße
Informatics
Kommunikation unter Threads
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Ich hab noch nie mit mehr als 2 Threats gearbeitet.
Eine für die Programmoberfläche, den 2. für die Aufgabe des Programms.
Für was bitte 1000???
Eine für die Programmoberfläche, den 2. für die Aufgabe des Programms.
Für was bitte 1000???

TUFKAB – the user formerly known as blackbird
-
- User
- Beiträge: 11
- Registriert: Freitag 16. Juli 2004, 09:33
Hallo,
Gut 1000 Threads sind vielleicht etwas übertrieben
Vermutlich brauche ich nicht soviele. Ich war nur etwas verwundert darüber, das die Anzahl an Threads so beschrenkt zu sein scheint.. vielleicht braucht man ja doch mal mehr? Nachrichten schicken kann ich also mit Queues? Werd es mir mal ansehen. Habt ihr vielleicht ein gutes Beispiel zur Hand?
Viele Grüße
Informatics
Gut 1000 Threads sind vielleicht etwas übertrieben

Viele Grüße
Informatics
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
Hi
Also bei meinem System hat Apache die meistens Threads mit 250 aber die meisten sind inaktiv. Ich glaube ich hab mal was gelesen, dass nicht mehr als 20 gleichzeitig aktive Threads laufen sollten.
Die Queues sind ganz einfach:
Sobald q1.put('hallo') ausgeführt wird, schicken sich die beiden Threads die Meldung hin und her, beim get() wartet der Thread bis ein Element vorhanden ist, nur merkst du dass hier nicht, weil sie sich sofort wieder eine Meldung schicken.
Gruss
*edit* ups die beiden Threads müssen natürlich noch mit start() aktiviert werden.
Also bei meinem System hat Apache die meistens Threads mit 250 aber die meisten sind inaktiv. Ich glaube ich hab mal was gelesen, dass nicht mehr als 20 gleichzeitig aktive Threads laufen sollten.
Die Queues sind ganz einfach:
Code: Alles auswählen
from threading import Thread
from Queue import Queue
class Thread1(Thread):
def __init__(self,reciever,sender):
self.reciever= reciever
self.sender = sender
super(Thread1, self).__init__()
def run(self):
while 1:
item = self.reciever.get()
print item
self.sender.put(item+".")
q1 = Queue()
q2 = Queue()
t1 = Thread1(q1,q2)
t2 = Thread1(q2,q1)
q1.put('hallo')
Gruss
*edit* ups die beiden Threads müssen natürlich noch mit start() aktiviert werden.
-
- User
- Beiträge: 11
- Registriert: Freitag 16. Juli 2004, 09:33
Hallo,
Werd es gleich ausprobieren.Danke
Viele Grüße
Inforamtics
Werd es gleich ausprobieren.Danke

Viele Grüße
Inforamtics