I've been trying to synchronize python multiprocessing. So far I ran into these issues:
multithreading can only use one core due to the GIL, however in other languages it is possible to make multiple threads use multiple cores inside a single process and have them access the same object
multiprocessing can use multiple cores but the shared memory is extremely slow (200 - 1000x times slower) especially with complex object (class A object contains a list of class B objects and a bunch of int/float, each B object contains a list of class C objects etc.)
Jython and ironpython do not have the GIL but making certain modules work with them is problematic (anything implemented in C / C++)
So is there a way to make multithreading use multiple cores in Python inside a single process? Not asking for a complete implementation, just if it's possible and if so how