The realpython.com website has a range of excellent tutorials covering all things concurrency in Python, including the following:
- What is the Python GIL? https://realpython.com/python-gil
- Speed Up Your Python Program with Concurrency: https://realpython.com/python-concurrency
- An Intro to Threading in Python: https://realpython.com/intro-to-python-threading
- Async IO in Python: A Complete Walkthrough: https://realpython.com/async-io-python
The following are relevant links from the official Python (3.7) API documentation:
- Threading: https://docs.python.org/3.7/library/threading.html
- The AsyncIO library: https://docs.python.org/3.7/library/asyncio.htm
- Developing with AsyncIO: https://docs.python.org/3.7/library/asyncio-dev.html
- Concurrency in Python: https://docs.python.org/3.7/library/concurrency.html