Less checking of arguments. Fewer data structures shared between all processors. Since each process has its own ready queue the global ready queue is not accessed so much. Allows for scheduling policy to more easily be adjusted on a per process basis as much of the policy lives in a library. The old disadvantages of user level schedulers have been addressed a number of times, most completely by Anderson et al.
Subjective Threads are a programming mechanism, like for loops or procedures.
They make it easier to write programs that have certain attributes. Processes are containers that are used to run a program on many OSs, in particular Unix. The user of a program should not have to care what particular implementation techniques were used in the implementation of the program. Processes act as firewalls between programs, allowing separate processes to fail independently from each other. The Plan 9 model solves the same problem that threads address with coroutines plus processes forked with the option to share nearly everything.