Not really, multi-threaded parallelism is still limited by the GIL and it is best to use multiple processes instead. Unless you are using threads for I/O, or anything not using the CPU.
What has changed since then is that Python now supports single-threaded concurrency, through async-await semantics.
What has changed since then is that Python now supports single-threaded concurrency, through async-await semantics.