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”