2016-06-24 4 views
0

Ich habe diese Klasse, die irgendwann on_close() aufrufen wird, wie stelle ich sicher, dass mein Thread geschlossen und der gesamte Speicher freigegeben wird? Gibt es eine Rückkehr in on_close() genug? Ist es auch sicher, 500+ Threads zu betreiben? Noob Fragen, ich weiß .. Aber ich versuche zu lernen!Python - gibt auf einer threading.Thread-Klasse den gesamten Speicher frei?

class MyClass(threading.Thread): 
    def __init__(self): pass 
    def do_stuff(self): pass 
    def on_close(self): 
      more_stuff() 
      return 

Antwort

0

das gc Modul verwenden, kann Sie zwingen den Garbage Collector helfen zu laufen.

Ihre zweite Frage betrifft, in der modernen PC Sie auf rund 4000 Threads laufen können, ABER Pythons GIL schafft eine absurde Situation, wo auf einem Multi-Core-PC mehrere Python-Threads ausgeführt wird langsamer sein als das gleiche Programm läuft auf einem Single-Core. David beazley erklärt dies perfekt in einer seiner Vorlesungen.