Last night at PyCon, at the Jython dinner (thanks goes to Sun for feeding us), we followed up a discussion from earlier during the day about Python and concurrency. We realized that CPython is far ahead of us in this area, and that we are lacking in compatibility. After serious brainstorming (and a few glasses of wine), we decided that introducing a Global Interpreter Lock in Jython would solve the entire issue!
After carefully reviewing the code changes, I’m disappointed.
Despite it’s reputation and the presence of much misinformation, the CPython GIL really does allow quite a bit of concurrency. With all those threads running loose, the the Jython team could have gone further. By implementing true barrier synchronization it would have been possible to guarantee not one shred of concurrent execution could ever happen.