The entire threading implementation in Julia is currently being overhauled. It's a large project with contributors from many parts of the world. The new threading model is being built on an algorithm called the parallel task runtime, or PARTR.Â
The primary benefit of this algorithm is the ability to compose threads. A common thread scheduler will be able to manage a hierarchy of threads from different libraries and components. This means that the issues with oversubscription we described in the previous chapter are no longer present.Â
In parallel with that (pun unintended), there is an effort ongoing to make Julia's base library thread safe. A large part of that effort is in making all I/Os thread safe. There has been much progress on this front. Julia version 1.2 included most of these changes, though not all of it is being exposed...