Concurrency¶
This section covers tools for managing concurrency.
@run_in_thread¶
Run a function asynchronously in a separate thread.
Parameters: - func (Callable): The function to be wrapped. Automatically passed when used as a decorator.
Usage as a Decorator:
@run_in_thread
def background_task():
print("This task is running in a separate thread.")
Usage as a Function:
def background_task():
print("This task is running in a separate thread.")
threaded_function = run_in_thread(background_task)
threaded_function() # Runs in a separate thread
@transactional¶
Ensure atomic operations within a transaction.
Parameters: - func (Callable): The function to be wrapped. Automatically passed when used as a decorator.
Usage as a Decorator:
@transactional
def update_user_balance(user_id, amount):
print(f"Updating user {user_id} balance by {amount}.")
Usage as a Function:
def update_user_balance(user_id, amount):
print(f"Updating user {user_id} balance by {amount}.")
transactional_function = transactional(update_user_balance)
transactional_function(42, 100) # Ensures atomic execution