Every tool has its purpose. We've all heard the popular phrase about nailing a microscope and chopping nuts with a hammer. The main feature of Django - fast and easy development. Multithreading in itself is not simple, and in Python even more. So Django is single-threaded and synchronous. Everything in it was designed for sequential execution and the attempt to make use of parallel will lead to problems. You can use his performance to mnohopocetny environment, but this is not a question to Django, and to the environment. For example, to uWSGI. To read about dynamic allocation of workarou in uWSGI you
here. In the Django you should try to make view function quickly gave the result. Correctly their design so long and locking operations can be shifted to
Celery. If the aim is to keep long and hard connect with the client, it is best to look to the side asynchronous frameworks
Tornado,
aiohttp or
Gevent.