Browse Source

Make everything in thread

master
Julio Biason 2 years ago
parent
commit
8ec1586a3a
  1. 30
      threadjoin.py

30
threadjoin.py

@ -2,30 +2,40 @@
languages. languages.
""" """
import time
from threading import Thread from threading import Thread
class ThreadWithReturn(Thread): class ThreadWithReturn(Thread):
def __init__(self, *args, **kwargs): def __init__(self, value, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
print(f'Created thread with time {value}')
self._value = value
self._return = None self._return = None
def run(self): 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): def join(self):
super().join() super().join()
print(f'Thread {self._value} joined')
return self._return return self._return
def runner(value):
return value + 2
def main(): def main():
t = ThreadWithReturn(target=runner, args=[2]) values = reversed(range(5))
t.start() threads = []
val = t.join() for value in values:
print(val) t = ThreadWithReturn(value)
t.start()
threads.append(t)
for thread in threads:
val = thread.join()
print(f'Returned value: {val}')

Loading…
Cancel
Save