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}')