Threading is not implemented by the compiler. The system, in the Kits, spawns multiple threads on behalf of the applications where it is useful. The application developer can also manually create multiple threads of execution, and can set the priority of each of the application's threads. Any thread that is ready to run will be scheduled on any available processor. Even single processor systems benefit from the aggressive threading in the BeOS.