Ich habe eine Reihe von Klassen, die in einer Reihe und parallel erben und ich muss Python-Threading für alle Klassen verwenden, wenn möglich. Ein Beispiel ist unten. Das Problem ist, dass die Build-Klasse nicht ihre Ausführungsfunktion ausführt, die eine Methode in der Thread-Klasse ist. Threading funktioniert in der MyThread-Klasse jedoch einwandfrei. Irgendeine Idee, wie die Build-Klasse als Thread gestartet wird?Python Threading in mehreren Unterklassen
from threading import Thread
from random import randint
import time
class Build(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
# This run function currently not being executed
for i in range(20):
print('Second series %i in thread' % (i))
time.sleep(1)
class MyThread(Build, Thread):
def __init__(self, val):
''' Constructor. '''
Thread.__init__(self)
Build.__init__(self)
self.val = val
def run(self):
for i in range(1, self.val):
print('Value %d in thread %s' % (i, self.getName()))
# Sleep for random time between 1 ~ 3 second
secondsToSleep = randint(1, 5)
print('%s sleeping fo %d seconds...' % (self.getName(), secondsToSleep))
time.sleep(secondsToSleep)
# Run following code when the program starts
if __name__ == '__main__':
# Declare objects of MyThread class
myThreadOb1 = MyThread(4)
myThreadOb1.setName('Thread 1')
myThreadOb2 = MyThread(4)
myThreadOb2.setName('Thread 2')
# Start running the threads!
myThreadOb1.start()
myThreadOb2.start()
# Wait for the threads to finish...
myThreadOb1.join()
myThreadOb2.join()
print('Main Terminating...')`
scheint zu funktionieren. Ich habe versucht, den Code und ersetzt einen der 'MyThread()' mit 'Build()' und es wurde richtig Aufrufen der 'run()'. – WreckeR