From 4a62d484440eada7d1a18f7b7f0a140df8834db1 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:29:51 +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..1c9a5c8c --- /dev/null +++ b/Week07/threaded_ege_enc.py @@ -0,0 +1,28 @@ +import threading + +def threaded(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 + +@threaded(4) +def func(value): + print(f"Hello World: {value}") + +# Test +func("dummy")