Thread und Datetime bzw time ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kartoffelsalat2
User
Beiträge: 5
Registriert: Montag 8. August 2011, 09:41

Hallo zusammen,

ich habe ein ganz komisches Problem. Immer wenn ich in einem Thread bin dann kann ich kein Zeit(Bzw. Datum) beziehen. Unten ist der Code .

Ich benutze Python 2.4 (Und nein, eine neuere Version kann ich nicht benutzen weil das Programm auf einem speziellen Gerät laufen soll)

danke schon mal im vorraus

Code: Alles auswählen

import threading 

class tester(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.i=0
    def run(self):
        try:
       
            from datetime import datetime, date,time
            
            print datetime.utcnow()
        except Exception,e:
            print e
        
t=tester()
t.run()
t.start() 

BlackJack

@kartoffelsalat2: Was genau passiert denn? Bekommst Du eine Ausnahme? Wenn ja, bitte den Traceback posten. Oder kann es sein, dass sich das Programm beendet bevor der Thread die Chance hat die Zeit abzufragen und auszugeben, weil das Hauptprogramm ja beendet wird. Wenn der Hauptthread am Ende angekommen ist, dann werden alle nicht-deamon-Threads einfach abgebrochen.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

BlackJack hat geschrieben:Oder kann es sein, dass sich das Programm beendet bevor der Thread die Chance hat die Zeit abzufragen und auszugeben, weil das Hauptprogramm ja beendet wird.
Es spricht eigentlich alles für diese Annahme. Bei mir erzeugt der Code eine Ausgabe, wenn ich allerdings vor das print noch ein "sleep(100)" einfüge, dann bleibt es schön ruhig auf der Konsole.
kartoffelsalat2
User
Beiträge: 5
Registriert: Montag 8. August 2011, 09:41

ja das sleep hab ich vergessen mit rein zu kopieren

hier meine ausgaben:
pydev debugger: warning: psyco not available for speedups (the debugger will still work correctly, but a bit slower)
pydev debugger: starting
hallo
2011-08-08 09:25:31.557000
123
hallo
sleep
ende

Code: Alles auswählen

import threading 
import time
from datetime import datetime, date
class tester(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.i=0
    def run(self):
        print "hallo"
        print datetime.utcnow()
        print "123"
      
        
t=tester()
t.run()
t.start()  
print "sleep"
time.sleep(10)

print "ende"

kartoffelsalat2
User
Beiträge: 5
Registriert: Montag 8. August 2011, 09:41

also hab jetzt nochmal versucht. anscheinend ist nicht der Code das Problem sondern was anderes.

Wenn ich den code so kopiere und das dann direkt vom debugger ausführe ist alles ok.

Nun wollte ich die datei aber über die ServerStart.py aufrühren lassen.
Und wenn ich das mache bekomme ich die Ausgabe

pydev debugger: warning: psyco not available for speedups (the debugger will still work correctly, but a bit slower)
pydev debugger: starting
hallo
2011-08-08 09:25:31.557000
123
hallo
sleep
ende



Anhang:

ServerStart.py

Code: Alles auswählen

from Start import ServerInit

ServerInit im Paket Start

Code: Alles auswählen

import threading 
import time
from datetime import datetime, date
class tester(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.i=0
    def run(self):
        print "hallo"
        print datetime.utcnow()
        print "123"
      
        
t=tester()
t.run()
t.start()  
print "sleep"
time.sleep(10)

print "ende"

Antworten