Seite 1 von 1
Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 17:33
von Codeagon
Hallo,
Ich hätte da eine Frage. Mir ist aufgefallen, dass Python nur eine begrenzte Anzahl an Threads hat. Wenn zu viele Threads gleichzeitig laufen, dann kommt beim Starten eines Threads eine Fehlermeldung. Auf meinem Computer habe ich aber 8GB RAM, wobei Python nur sehr wenig auslastet und ich immer so 4GB RAM Luft habe. Kann man irgendwie einschalten, dass Python mehr Threads laufen lassen kann. Liegt die Begrenzung überhaupt am Abeitsspeicher oder vielleicht an etwas anderem. Danke schon mal im Vorraus.
Gruß
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 18:43
von sparrow
Der Speicher hat nichts mit Threads zu tun.
Wie lautet denn die Fehlermeldung?
Wie erzeugst du Threads? (Bitte den Code zeigen, in Code-Tags schreiben)
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 18:46
von Codeagon
Die Fehlermeldung ist sowieso in 'nem try, aber die Fehlemeldung lautet: can't start new thread.
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 18:54
von Codeagon
Ich hab das echte Programm zwar grade nicht hier, aber dieses Program ergibt den gleichen Fehler:
Code: Alles auswählen
from threading import Thread
import time
def ab():
time.sleep(1)
while True:
t = Thread(target = ab)
t.start()
Aber wenn man das time.sleep(1) raus nimmt kommt kein Fehler, weil der Thread glaube ich nicht mehl läuft.
Code: Alles auswählen
from threading import Thread
import time
def ab():
pass
while True:
t = Thread(target = ab)
t.start()
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 19:00
von Sirius3
Die Anzahl der Threads pro Process ist vom Betriebssystem begrenzt, weil jeder Thread verschiedenste Resourcen braucht und es wenig Sinn macht, zu viele davon zu haben.
Warum willst Du überhaupt so viele Threads erzeugen? Es gibt immer intelligentere Lösungen.
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 19:22
von Codeagon
Ich will testen, ob man mit Durchschnittscomputern Passwörter knacken kann und brauche dafür viele Threads.
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 19:27
von __deets__
Mehr Threads als Kerne ist eh Unfug. Paralleler wird es nicht. Und Google mal Python GIL - und wirf deine threads weg.
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 19:29
von Codeagon
Heißt das jetzt, dass ich auch ohne Threads, genauso schnell bin?
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 19:37
von kbr
Sogar schneller.
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 19:38
von Codeagon
Danke
Ich hab es ausprobiert und ihr habt Recht. Aber gibt es noch andere Möglichkeiten um ein Python-Programm schneller laufen zu lassen?
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 19:38
von __deets__
Ja. Schneller sogar. Aber natürlich ist multiprocessing eine Option. Sowas mit Python zu machen ist aber eh eine schlechte Idee. Das ist ja keine Performante Sprache.
Re: Begrenzte Anzahl an Threads
Verfasst: Sonntag 8. Dezember 2019, 19:40
von Codeagon
Wenigstens weiß ich jetzt, dass man mit Python so schnell keine Passwörter von zip-Dateien knacken kann.
