processing data in parallel python
cPickle.load() will release the GIL so you can use it in multiple threads easily. But cPickle.loads() will not, so don't use that.
Basically, put your data from Redis into a StringIO then cPickle.load() from there.  Do this in multiple threads using concurrent.futures.ThreadPoolExecutor.
I have a script, parts of which at some time able to run in parallel. Python 3.6.6
The goal is to decrease execution time at maximum. 
One of the parts is connection to Redis, getting the data for two keys, pickle.loads for each and returning processed objects. 
What’s the best solution for such a tasks?
I’ve tried Queue() already, but Queue.get_nowait() locks the script, and after {process}.join() it also stops execution even though the task is done. Using pool.map raises TypeError: can't pickle _thread.lock objects. 
All I could achieve is parallel running of all parts but still cannot connect the results