However, there are some disadvantages with multithreading. Some are inherent in the multithreading paradigm, and others (such as GIL), are particular to Python:
- Threads cannot directly start another program. They can only call functions or methods in parallel with the rest of the program that spawned them, that is, threads can only utilize and interact with the components of their parent but can't work with other programs.
- Threads have to contend with synchronization and queues to ensure operations don't block others. For example, there is only one stdin, stdout, and stderr available per program and all the threads for that program have to share those interfaces, so managing thread conflicts can become a problem.
- Global interpreter ...