joplin-mdbooks-website/content/python/decorator-that-runs-a-function-in-a-thread.md

39 lines
672 B
Markdown
Raw Normal View History

2023-07-18 17:41:53 -04:00
# Decorator that runs a function in a thread
I wrote a small decorator that will convert any function to run in a thread:
```
import threading
def run_threaded(fn):
"""A decorator that makes a function run in a thread."""
def run(*k, **kw):
t = threading.Thread(target=fn, args=k, kwargs=kw)
t.start()
return t
return run
```
Example:
```
@run_threaded
def add(x, y):
# This runs in a separate thread.
print(x+y)
add(1+2)
```
That's it!
* * *
<p style="font-size:80%; font-style: italic">
Last updated on July 19, 2023. For any questions/feedback,
email me at <a href="mailto:hi@stavros.io">hi@stavros.io</a>.
</p>