Zthreading: Thread and Async Task Management

0.1.19 · active · verified Sat Apr 11

Zthreading is a Python library offering a unified interface for managing both traditional Python threads and `asyncio` tasks. It provides wrapper classes for event broadcasting, task management, and decorators for common concurrency patterns. The library is actively maintained, with minor releases addressing bug fixes and new features every few months.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to use `ThreadManager` to add and manage tasks, both directly and using the `as_task` decorator. It shows how to retrieve results and properly wait for tasks to complete, then clean up the manager.

import time
from zthreading.thread_manager import ThreadManager
from zthreading.decorators import as_task

def my_task(name):
    print(f"Task {name} started")
    time.sleep(1) # Simulate work
    print(f"Task {name} finished")
    return f"Result for {name}"

# Initialize ThreadManager
manager = ThreadManager()

# Add tasks
task1_handle = manager.add_task(my_task, args=("Task 1",))
task2_handle = manager.add_task(my_task, args=("Task 2",))

# Use decorator for another task
@as_task(manager=manager)
def decorated_task(name):
    print(f"Decorated task {name} started")
    time.sleep(0.5)
    print(f"Decorated task {name} finished")
    return f"Decorated result for {name}"

decorated_task_handle = decorated_task("Decorated Task 3")

# Wait for all tasks to complete
manager.wait_for_tasks()

print(f"\nTask 1 result: {task1_handle.get_result()}")
print(f"Task 2 result: {task2_handle.get_result()}")
print(f"Decorated task result: {decorated_task_handle.get_result()}")

# Ensure all threads are properly joined/terminated
manager.join_all()

view raw JSON →