Does NuPIC use threads or processes?

I’ve been reviewing the code in a few of the code in the hotgym and NYC taxi example code. It looks to me like HTM uses sub-processes for processing multiple models simultaneously. Is my understanding correct? Or does HTM use threads?

And I’m curious to know what are the reasons why were sub-processes used instead of threads? Or vice-versa if threads are in fact being used.