From 8ec1586a3a067cc05afd58a31a7cdebf702cc53a Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Tue, 1 Nov 2022 15:21:29 -0300 Subject: [PATCH] Make everything in thread --- threadjoin.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/threadjoin.py b/threadjoin.py index 3351725..b4814fb 100644 --- a/threadjoin.py +++ b/threadjoin.py @@ -2,30 +2,40 @@ languages. """ +import time + from threading import Thread + class ThreadWithReturn(Thread): - def __init__(self, *args, **kwargs): + def __init__(self, value, *args, **kwargs): super().__init__(*args, **kwargs) + print(f'Created thread with time {value}') + self._value = value self._return = None def run(self): - self._return = self._target(*self._args, **self._kwargs) + time.sleep(self._value) + self._return = self._value + 2 + print(f'Thread {self._value} completed') def join(self): super().join() + print(f'Thread {self._value} joined') return self._return -def runner(value): - return value + 2 - - def main(): - t = ThreadWithReturn(target=runner, args=[2]) - t.start() - val = t.join() - print(val) + values = reversed(range(5)) + threads = [] + for value in values: + t = ThreadWithReturn(value) + t.start() + threads.append(t) + + for thread in threads: + val = thread.join() + print(f'Returned value: {val}')