Optimization with jsprit using threads and change in construction algorithm

Hello everyone, everything good?

I have a problem with optimization using jsprit. My problem: with a very large amount of jobs (1110 jobs) the default construction of the algorithm would not even run.

After a lot of research I discovered the possibility of using threads and so I did: I used threads (8 threads), but it still didn’t work satisfactorily. After more research I discovered the possibility of changing the construction algorithm whose default is “REGRET_INSERTION”. With that, I switched to the “BEST_INSERTION” algorithm and it seems to have worked well, however it works much better if it only uses 1 thread.

Using only one thread for 1110 jobs took only 118s. However, with 8 threads the time was approximately 530s. My question then is: why does it work so well with just one thread? To me, it seems a little counterintuitive.