Я новичок в многопоточности, поэтому ответ, вероятно, очень прост.Наследование threading.Thread класс не работает
Я пытаюсь сделать два экземпляра одного класса и запустить их параллельно. Я прочитал, что могу использовать наследование класса для этого.
class hello(threading.Thread):
def __init__(self,min,max):
threading.Thread.__init__(self)
time.sleep(max)
for i in range(1000):
print random.choice(range(min,max))
h = hello(3,5)
k = hello(0,3)
Я заметил, что это не работает (первые выходы цифры от 3 до 5)
Не могли бы вы объяснить, что я делаю неправильно?
Является ли это наследование посвященным, чтобы сделать что-то еще?
EDIT: Я хочу, чтобы эти два объекта были параллельными, так как второй объект имеет меньшие ожидания, он должен печатать эти числа раньше.
Согласно комментарию porglezomps, я попытался изменить код - добавьте метод, который печатает эти числа, но он печатает его последовательно. Проблема все еще существует.
Я не могу видеть, какой образ вы думаете, что вы используете наследование классов здесь (кроме как в тривиальных что класс наследует от Thread). Однако вы не указали, в чем проблема; как ваш результат отличается от того, что вы ожидаете? –
Вы выполняете всю свою работу в конструкторе, но конструктор работает в основном потоке. – porglezomp
@porglezomp Хорошо, я попытался создать метод класса, который печатает его, но проблема все еще существует. Класс привет (threading.Thread): Защиту __init __ (самостоятельно, мин, макс): threading.Thread .__ __ INIT (само) self.min = мин self.max = макс Защиту PRINT_IT (само): время .sleep (self.max) для i в диапазоне (20): print random.choice (диапазон (self.min, self.max)) –