From 7427b98cdefc1fe78df6265c7e7d313f89162dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20En=C3=A7?= <111919042+egeenc0@users.noreply.github.com> Date: Sun, 15 Dec 2024 08:28:08 +0300 Subject: [PATCH] Create threaded_ege_enc.py --- Week07/threaded_ege_enc.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Week07/threaded_ege_enc.py diff --git a/Week07/threaded_ege_enc.py b/Week07/threaded_ege_enc.py new file mode 100644 index 00000000..26d38f08 --- /dev/null +++ b/Week07/threaded_ege_enc.py @@ -0,0 +1,28 @@ +import threading + +def threader(n: int): + """ + This function is a decorator which takes an integer n as an argument + and returns a threaded function. + + :param n: Number of threads + :return: Threaded function + """ + def decorator(func): + def wrapper(*args, **kwargs): + threads = [] + for _ in range(n): + t = threading.Thread(target=func, args=args, kwargs=kwargs) + t.start() + threads.append(t) + for t in threads: + t.join() + return wrapper + return decorator + +@threader(4) +def func(value): + print(f"Hello World: {value}") + +# Test +func("dummy")