So I need to do some async operations and was thinking about possible solutions. One of those solutions is to use threads to dispatch a work a job and have a callback be called upon completion but upon further reading I came across the Global Interpretor Lock (GIL).
As far as I am aware the GIL effectively makes the CPython single threaded as it blocks all non-running tasks until the other task is complete. If this is the case then why are threads used in Python? Wouldn't it be simpler and more effective to spawn a new process instead which would be able to run in parallel?
I'm just trying to decide whether it is worth the time to use Python threads or whether I should use something else to deal with async operations instead.
Please bear in mind I am using the standard CPython implementation and version 3.4.2 on Arch Linux.