1. Application creates a thread and places it in READY queue
2. READY to RUNNING: Process Scheduler assigns it to a processor
3. RUNNING to WAITING: when dependent on an outside event
4. WAITING to READY: outside event occurs or previous thread finishes
5. RUNNING to DELAYED: application delays thread processing
6. DELAYED to READY: prescribed time elapsed
7. RUNNING to BLOCKED: I/O request issued
8. BLOCKED to RUNNING: I/O completed
9. RUNNING to FINISHED: exit or termination