A live simulator for async, sync, thread pools, sub-threads, fork, and task managers — with real response-time analytics.
Each mode runs a real simulation with configurable tasks, durations, and pool sizes. Watch them compete on response time.
Tasks execute one at a time, blocking until each finishes. Simple, predictable, but throughput suffers under I/O waits. Total time = sum of all task times.
A single event loop interleaves I/O-bound tasks. While one awaits, another runs. No threads, no GIL — overhead is minimal. Ideal for network-heavy workloads.
N pre-allocated worker threads share a FIFO queue. Tasks dispatch instantly to idle threads; full queues block or reject. Classic WSGI concurrency model.
Each task spawns its own thread on demand. High parallelism, high overhead. Useful for truly independent workloads where pool management isn't worth the complexity.
OS-level process cloning. Each fork gets its own memory and GIL — true CPU parallelism in Python. Heavier than threads; best for CPU-bound tasks like ML inference.
Priority-based scheduling with preemption. High-priority tasks jump the queue; low-priority tasks can be cancelled under load. Models Celery, Ray, and similar systems.
Set task count, duration, pool size, and I/O ratio. Each mode shows live thread bars, a Gantt timeline, and response-time distribution.
From LLM integration to production inference — we handle the full stack.