Multiprocessing.shared_memory – Shared memory for direct access across processes
docs.python.org
docs.python.org
Now that asyncio is production ready (we really have had a decent doc and asyncio.run() for a short time), and this, the concurrency story in Python is starting to look decent.
Since the 3.6, things are really going nicely.
Maybe we'll see an async django-like framework emerging from now on instead of the myriad of async flask copycat and django-channels. This would open the gate to live settings, manipulating tasks queues in URL enpoints, having RPC/PUB-SUB baked in. After all, I don't need async to just have exactly the same features as a WSGI framework.
Hopefully django will start supporting asgi soon and let us write async views alongside existing sync stuff.
For now on, I just use asyncio with a lib to add nurseries to it.
As you'll notice, we now can start program with a simple asyncio.run() instead of manually setuping the event loop. Not only it is less verbose and easier, it's also much less error prone. It should have been in asyncio from the begining, but even a long fight on python-ideas didn't work. Fortunatly, Yuri decided to add on his own.
So if the hope of being fast keeps you with Python, you choose the wrong language.
The number of cores have increased ridiculously, but that doesn't really help python much.
Which is something that is starting to look interesting again, given the security issues of multi-threading.