Python has something named the GIL Gill
(Global Interpreter Lock) which prevents any kind of shared memory parallelism and even sometimes message based parallelism. In theory, it is possible to serialize objects if they are small but most Python bindings don’t and won’t implement what is required for bringing parallelism capacity.
As a result, many Python programs with huge amount of work to bring serialization support across all dependencies/subdependencies are finding themselves having to rely on single thread cpu-thread CPU performance with running during weeks on a specific problem still in 2022 !
And unlike languages like Java, Python useuses reference counting instead of garbage collection in a separate thread which adds work in aan already single thread bound-thread-bound language.
On the other hand, languages like C++ or Fortran don’t suffer from the warm up time of jitJIT languages like Java or JavaScript nor the slow execution speed of language like Python or/along the Cythonized version.