Context switching has a cost in performance. Directly due to running the task scheduler, translate and look aside buffer flushes, and indirectly due to sharing the CPU cache between multiple tasks. These are pure overheads. Thus if it is possible threads should be used, instead of processes, since context switching threads have lower cost compared to process' context switching.