Anyone want to chime in on why Python threads and subprocesses can't be used?
The problem now becomes transferring data to that worker, which is where celery comes into play.
Python threads cannot be used for CPU heavy loads because they all run on a single core.[0][1]
[0]: CPython threads are kernel threads but effectively act like user threads. All threads run within a single VM and thus restricted to a single core.
[1]: Jython does not have the same limitation.
Multiprocessing makes it pretty straight-forward to manage inter-process communication with queues, but you'd have to write all the other stuff task queues handle for you, such as error management.