Use care when writing code that uses realtime scheduling to control the priority of threads. First, review Section 3.1. Scheduling is not the same as synchronization. Second, note that threads with higher priority do not necessarily make your code run faster. Realtime priority adds overhead that can slow a program down, especially when interfacing with other libraries. For example, a high priority thread that polls for keyboard input may block work being done by other threads. Third, watch for pitfalls like priority inversion. It is best to avoid relying on realtime scheduling except where it's necessary to meet design goals. On the other hand, most systems that interact with external devices (including humans) have some realtime aspect.