Think of it like running multiple python processes inside the same memory space so that copying between interpreters is by reference, not value. Nothing has to be serialized.
I think the only way to do that would be to have a reentrant lock for each object individually. Isn't that potentially a big performance issue?
I think that is the main reason behind this quote from the article:
> Several attempts have been made over the years and failed to do it without sacrificing single-threaded performance.