Here is a real world example: If you have a blocking call, like requests library, making a call to an api with a long latency, in a GUI application. When making the call the GUI locks up until requests returns. If you run the call to requests in a separate thread, the GUI is not locked. Answer from ElliotDG on reddit.com
🌐
Python
docs.python.org › 3 › library › threading.html
threading — Thread-based parallelism
Python’s Thread class supports a subset of the behavior of Java’s Thread class; currently, there are no priorities, no thread groups, and threads cannot be destroyed, stopped, suspended, resumed, or interrupted.
🌐
Real Python
realpython.com › intro-to-python-threading
An Intro to Threading in Python – Real Python
August 5, 2024 - A thread is a separate flow of execution. This means that your program will have two things happening at once. But for most Python 3 implementations the different threads do not actually execute at the same time: they merely appear to.
Discussions

Upgrade from DataAccess.Client to ManagedDataAccess. ...
Oracle Forums is a community platform where you can discuss Oracle products and services, collaborate with peers, and connect with Oracle experts. More on forums.oracle.com
🌐 forums.oracle.com
1 week ago
Spacebattles Trending Stories and Quests (Updated Weekly) | SpaceBattles
This is all done in Python using free libraries. If you would like a copy of the notebook - please just let me know ... I'm working on some new aspects to the analysis. I'm halfway to using ML to understand the topic of conversation in the thread. I'll let y'all know when that's ready. More on forums.spacebattles.com
🌐 forums.spacebattles.com
May 3, 2025
Why use threads in Python?
Numeric libraries (numpy, numba) tend to 'release' the Gil, meaning multiple threads can meaningfully used for speedups More on reddit.com
🌐 r/Python
54
65
April 8, 2018
Multi-Threading in Python

New to programming and immediately diving into multithreading? Do you have a specific problem to solve? Not saying we won't help you, but it seems like you're starting on the wrong things.

More on reddit.com
🌐 r/learnpython
26
7
September 14, 2021
🌐
Reddit
reddit.com › r/learnpython › is there any reason to use thread in python?
r/learnpython on Reddit: is there any reason to use thread in python?
October 11, 2023 -

after learning more about asyncio (for IO bound) and multiprocessing (for CPU bound), I start to wonder if there is any real life use case for threading in python. It seems python threading comes with its own baggage, like GIL lock, and it was mentioned that python threading, is not really really multi-thread since due to limitation on interpreters' binding to CPU, only a thread could be scheduled at a time?

This makes me wonder why we even want to use python thread at all?

Top answer
1 of 9
18
Here is a real world example: If you have a blocking call, like requests library, making a call to an api with a long latency, in a GUI application. When making the call the GUI locks up until requests returns. If you run the call to requests in a separate thread, the GUI is not locked.
2 of 9
9
Threading is absolutely not legacy and both threading and asyncio have their place. Asyncio and threading work similarly at the high level but don't work the same at the low level. At the low level threads are still managed by the operating system, where asyncio tasks are managed with a Python event loop. With threading the OS can change threads at ANY time during execution, so you have to be more careful about how data is accessed. With asyncio you choose when work between tasks can change. Asyncio is great for LOTS of tasks, especially since it has less overhead. Threading has more overhead and having lots of threads can start to slow things down more than it speeds up. One of the subtle issues with asyncio is if a task gets hung up or doesn't play nice it can prevent all your other tasks from running. For critical tasks that absolutely must keep running threading is better. For example I often write interfaces that receive critical telemetry from something over a UDP port. The front end consists of a thread that receives data on the UDP socket then logs it and puts it in a queue. Another processing thread then pulls the data from the queue to process it. The receiving and logging is super critical. If the processing thread dies or gets hung up it's not a huge deal as long as the data is still being received and logged.
🌐
Oracle
forums.oracle.com › ords › apexds › post › upgrade-from-dataaccess-client-to-manageddataaccess-client-1666
Upgrade from DataAccess.Client to ManagedDataAccess. ...
1 week ago - Oracle Forums is a community platform where you can discuss Oracle products and services, collaborate with peers, and connect with Oracle experts.
🌐
SpaceBattles
forums.spacebattles.com › creative works › creative writing
Spacebattles Trending Stories and Quests (Updated Weekly) | SpaceBattles
May 3, 2025 - It's been a blast making the python code for this over the last couple of days ... Click to expand... Click to shrink... Usually it's looking at threadmark reactions in aggregate - it's the Spacebattles category that you can sort the view by called "Thread Reactions Score".
🌐
YouTube
youtube.com › watch
Programming Tutorial - Advanced Python 16
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
Find elsewhere
🌐
Dbos
dbos.dev › blog › async-python-is-secretly-deterministic
Async Python is Secretly Deterministic | DBOS
2 weeks ago - At the core of async Python is an event loop. Essentially, this is a single thread running a scheduler that executes a queue of tasks. When you call an async function, it doesn’t actually run; instead it creates a “coroutine,” a frozen function call that does not execute.
🌐
DEV Community
dev.to › imsushant12 › multithreading-in-python-lifecycle-locks-and-thread-pools-3pg3
Multithreading in Python: Lifecycle, Locks, and Thread Pools - DEV Community
October 13, 2025 - Thread 4 entered Thread 4 exited. ... If no value is specified in the Semaphore object (for example, obj = Semaphore()), then it behaves like a lock. Python also provides BoundedSemaphore, which is similar to Semaphore but adds a safety check, i.e., if a thread calls release() more times than acquire(), it will raise a ValueError.
🌐
DevGenius
blog.devgenius.io › unlocking-the-power-of-parallelism-a-guide-to-threading-in-python-46e60a90e655
Unlocking the Power of Parallelism: A Guide to Threading in Python | by Ajay Kumar Pandit | Dev Genius
May 31, 2025 - In the world of Python programming, where efficiency and speed are essential, threading emerges as a powerful technique to supercharge your…
🌐
Python
docs.python.org › 3 › library › multiprocessing.html
multiprocessing — Process-based parallelism
February 23, 2026 - Changed in version 3.13: The return value can also be overridden using the -X cpu_count flag or PYTHON_CPU_COUNT as this is merely a wrapper around the os cpu count APIs. ... Return the Process object corresponding to the current process. An analogue of threading.current_thread().
🌐
Stackademic
blog.stackademic.com › the-only-python-gui-library-id-recommend-to-beginners-11a462b657d2
The Only Python GUI Library I’d Recommend to Beginners | by Areej Saeed | Mar, 2026 | Stackademic
2 weeks ago - The Only Python GUI Library I’d Recommend to Beginners Build Real Automation Tools Instead of Fighting UI Frameworks I tried almost every Python GUI library before recommending one. Tkinter. …
🌐
W3Schools
w3schools.com › python › ref_module_threading.asp
Python threading Module
Python Examples Python Compiler Python Exercises Python Quiz Python Challenges Python Practice Problems Python Server Python Syllabus Python Study Plan Python Interview Q&A Python Bootcamp Python Certificate Python Training ... import threading def task(): print('Thread running for Linus') thread = threading.Thread(target=task) print(f'Thread created: {thread.name}') Try it Yourself »
🌐
Analytics Vidhya
analyticsvidhya.com › home › beginners guide to threading in python
Threading in Python | What is Threading in Python
October 25, 2024 - In Python programming, threading is a powerful technique for achieving concurrency and optimizing performance. By allowing the execution of multiple tasks simultaneously within a single process, threading opens up new horizons for efficiently ...
🌐
Tech And Programming
y3script.hashnode.dev › python-threading-a-comprehensive-guide-to-multithreading-in-python
Python Threading: A Comprehensive Guide to Multithreading in Python
June 24, 2023 - Threading is a technique that allows multiple tasks to run concurrently within a single program. It enables developers to execute different parts of a program simultaneously, thereby improving overall performance and responsiveness.
🌐
Codecademy
codecademy.com › docs › python › threading
Python | Threading | Codecademy
April 21, 2025 - The threading module allows multiple threads of execution to take place in a Python program.
🌐
Brandonrohrer
brandonrohrer.com › threading.html
Threading in Python
Even after breaking your program up into several threads, they still are part of one process, that is, they take the form of a single set of instructions that run on a single processor in your computer. If your code is already using all the cycles on one processor, then breaking it up into threads won’t change that. (For that you want Python's multiprocessing package.
🌐
GeeksforGeeks
geeksforgeeks.org › python › multithreading-python-set-1
Multithreading in Python - GeeksforGeeks
October 3, 2025 - Multithreading in Python allows multiple threads (smaller units of a process) to run concurrently, enabling efficient multitasking.
🌐
Plain English
python.plainenglish.io › unraveling-the-python-thread-a-journey-into-concurrency-and-multithreading-9e78caef6491
Unraveling the Python Thread: A Journey into Concurrency and Multithreading | by Khushiyant | Python in Plain English
September 22, 2023 - Let’s start juggling! We’ll explore the `threading` module, which allows us to create and manage threads. We’ll introduce you to the concept of thread creation and demonstrate how to make Python juggle tasks concurrently.
🌐
Medium
medium.com › ki-labs-engineering › busting-the-myth-around-multithreading-in-python-5c29653affd2
Busting the Myth Around Multithreading in Python | by Preslav Rachev | KI labs Engineering | Medium
June 3, 2019 - Threads in python are perfect for issuing long-running I/O operations, such as database or remote API calls, file operations, etc. Where they show pretty miserable performance is heavy CPU operations (e.g.
🌐
Python documentation
docs.python.org › 3 › library › tkinter.html
tkinter — Python interface to Tcl/Tk
February 23, 2026 - The Tcl library has a C interface to create and manage one or more instances of a Tcl interpreter, run Tcl commands and scripts in those instances, and add custom commands implemented in either Tcl or C. Each interpreter has an event queue, and there are facilities to send events to it and process them. Unlike Python, Tcl’s execution model is designed around cooperative multitasking, and Tkinter bridges this difference (see Threading model for details).