In a limited resource system like an embedded system, one may sometimes find that having a single process to run the code in is the only possibility.

As resources increase, it could be possible to improve process management to allow multiple threads of execution inside a process.

A well designed, multithreaded application usually has good performance as it can parallelize some of the operations.