Two main ways
- Count cycles (usually called delay)
- No OS required, but cannot do other stuff
- Register a “wake time” and yield
- Os required, but can do other stuff
Sleeping is “waiting for time”
- Calling sleep tells the scheduler to make the thread “not runnable”